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

Ara*_*ida 3 tuples list python-3.x

有人问过与我所追求的类似但不完全相同的问题,例如Python 3: Removing an empty tuple from a list of tuples,但可以这么说,我仍然无法在两行之间阅读。

这是我的数据结构,包含字符串的元组列表

data
>>[
('1','1','2'),
('','1', '1'),
('2','1', '1'),
('1', '', '1')
]
Run Code Online (Sandbox Code Playgroud)

我想要做的是,如果元组中有一个空字符串元素,则从列表中删除整个元组。

我得到的最接近的是:

data2 = any(map(lambda x: x is not None, data))
Run Code Online (Sandbox Code Playgroud)

我以为这会给我一个真假列表,看看哪些是要丢弃的,但这只是一个布尔值。如果有更好/更简单的方法,请随意废弃这种方法。

Jen*_*rup 5

您可以使用filter- 在您链接的问题None中,您放置了一个函数来过滤结果。在你的情况下:

list(filter(lambda t: '' not in t, data))
Run Code Online (Sandbox Code Playgroud)

t最终成为 - 中的每个元组,list因此您只能过滤到其中没有的结果''