首页 > 解决方案 > 从元组列表中删除所有零

问题描述

我在 python 中有一个元组列表:

例子 :

lstA = [ (12,0,20,50), (30,70,80,15), (11,12,0,35), (7,6,5,4), (1,0,0,4) ]

我希望在原始列表元组中作为输出,并删除零值。所以对于上面的输入,输出应该是:

lstA = [(12,20,50), (30,70,80,15), (11,12,35), (7,6,5,4), (1,4)]

如何以pythonic方式做到这一点?

标签: pythonpython-3.xpython-2.7listtuples

解决方案


您可以通过列表压缩传递这些并随时创建新的元组:

lstA = [ (12,0,20,50), (30,70,80,15), (11,12,0,35), (7,6,5,4), (1,0,0,4) ]

cleaned = [tuple(n for n in sublist if n != 0) for sublist in lstA]

# [(12, 20, 50), (30, 70, 80, 15), (11, 12, 35), (7, 6, 5, 4), (1, 4)]

推荐阅读