繁体   English   中英

从列表中的元组中删除元素

[英]Remove element from tuple in a list

我用这个把头撞到了墙上:

基本上我想要的是从这个元组列表中删除“”项:

[('650', '724', '6354', '', '', ''), ('', '', '', '650', '723', '4539')]

并获得以下新列表:

[('650', '724', '6354'), ('650', '723', '4539')]

有任何想法吗?

Python中的元组是不可变的 这意味着一旦创建了元组,就无法更改其中包含的元素。 但是,您可以创建一个新的元组不包含你不想要的物品。 例如:

>>> a = [('650', '724', '6354', '', '', ''), ('', '', '', '650', '723', '4539')]
>>> [tuple(y for y in x if y) for x in a]
[('650', '724', '6354'), ('650', '723', '4539')]

这使用列表理解[... for x in a]来使用...的公式创建新列表。 使用的发电机表达式y for y in x if y创建包含的元素的新的元组x y为真(意味着值为truthy或字符串是一个非空)。

a = [('650', '724', '6354', '', '', ''), ('', '', '', '650', '723', '4539')]

print [tuple(x for x in y if x) for y in a]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM