从列表末尾过滤元素

时间:2013-03-29 01:20:39

标签: python list filter

我有一个如下所示的数据结构:

[(1, 2), (2, 3), (4, 0), (5, 10), (6, 0), (7, 0)]

在第二个元素为0的列表末尾仅过滤掉元组的最佳方法是什么?

所需的输出是:

[(1, 2), (2, 3), (4, 0), (5, 10)]

1 个答案:

答案 0 :(得分:1)

我更喜欢@MartijnPieters的解决方案,用于就地

>>> L = [(1, 2), (2, 3), (4, 0), (5, 10), (6, 0), (7, 0)]
>>> i = next((i for i, (x, y) in enumerate(reversed(L)) if y != 0), 0)
>>> L[:-i]
[(1, 2), (2, 3), (4, 0), (5, 10)]