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

我用这个敲我的头靠在墙上:

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

[('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创建一个包含x的元素的新元组,那么在x中使用y的y生成器表达式y如果y是true(意思是值是真实的,或者字符串是非空格).

转载注明原文:python – 从列表中的元组中删除元素 - 代码日志