有些问题与我之后的问题类似,但不完全像Python 3: Removing an empty tuple from a list of tuples,但我仍然无法在线条间阅读,可以这么说。
这是我的数据结构,包含字符串的元组列表
data
>>[
('1','1','2'),
('','1', '1'),
('2','1', '1'),
('1', '', '1')
]
我想要做的是,如果元组中有一个空字符串元素,请从列表中删除整个元组。
我最接近的是:
data2 = any(map(lambda x: x is not None, data))
我认为这会给我一份真实的清单'和falses'看看哪些掉落,但它只是一个bool。如果有更好/更简单的方法,请随意废弃该方法。
答案 0 :(得分:3)
您可以使用filter
- 在您链接到None
的问题中,您可以使用函数来过滤结果。在你的情况下:
list(filter(lambda t: '' not in t, data))
t
最终成为list
中的每个元组 - 因此您只过滤到其中没有''
的结果。
答案 1 :(得分:1)
您可以按如下方式使用列表推导:
data = [ ('1','1','2'), ('','1', '1'), ('2','1', '1'), ('1', '', '1') ]
data2 = [_ for _ in data if '' not in _]
print(data2)
<强>输出:强>
[('1', '1', '2'), ('2', '1', '1')]