是否有一种优雅的蟒蛇式方法从列表中删除尾随的空元素?一种列表。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()