我已经为此苦苦思索很久:
基本上,我想从这个元组列表中删除“”项:
[('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
来创建一个新的元组,仅当y
为真(即其值为真值或字符串非空)时,该元组才包含x
的元素。
a = [('650', '724', '6354', '', '', ''), ('', '', '', '650', '723', '4539')]
print [tuple(x for x in y if x) for y in a]