是否有一种优雅的蟒蛇式方法从列表中删除尾随的空元素?一种列表。rstrip(无)。所以

[1, 2, 3, None, 4, None, None]

应该导致
[1, 2, 3, None, 4]

我想这可以概括为删除任何特定值的尾随元素。
更新:我应该指定将此操作作为单行(可读)表达式完成。

最佳答案

编辑:使用pop()而不是切片列表,正如注释者正确建议的那样。
我不知道还有没有比这更好的方法,但这是可行的:

my_list = [1, 2, 3, None, 4, None, None]
while not my_list[-1]:
    my_list.pop()
print my_list
>>>[1, 2, 3, None, 4]

编辑:正如@dsm指出的那样,如果您只想去掉None值,并保留零或其他错误值,您可以这样做:
while my_list and my_list[-1] is None:
    my_list.pop()

10-01 08:15
查看更多