如果元组包含任何空字符串元素,请删除元组

时间:2017-11-22 03:30:55

标签: python-3.x list tuples

有些问题与我之后的问题类似,但不完全像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。如果有更好/更简单的方法,请随意废弃该方法。

2 个答案:

答案 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')]
相关问题