我用这个把头撞到了墙上:
基本上我想要的是从这个元组列表中删除“”项目:
[('650', '724', '6354', '', '', ''), ('', '', '', '650', '723', '4539')]
并获取以下新列表:
[('650', '724', '6354'), ('650', '723', '4539')]
任何想法?
答案 0 :(得分:23)
Python中的元组是不可变的。这意味着一旦创建了元组,就无法更改其中包含的元素。但是,您可以创建一个不包含您不需要的项目的 new 元组。例如:
>>> 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
为真(意味着值是真的,或者是字符串)是非空白的。
答案 1 :(得分:0)
a = [('650', '724', '6354', '', '', ''), ('', '', '', '650', '723', '4539')]
print [tuple(x for x in y if x) for y in a]