我用这个把我的头撞在墙上:

基本上,我要从此元组列表中删除“”项:

[('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为true(表示值是true或字符串为非空白)时,才使用生成器表达式x创建一个包含y元素的新元组。

10-07 15:12