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

标签 python list tuples

我用这个把头撞在墙上:

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

[('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 only if y< 元素的新元组 为真(表示值为真,或者字符串为非空)。

关于python - 从列表中的元组中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9694739/

相关文章:

syntax - 带逗号的 F# let 语句的语义

python - 使用 Python Selenium 在输入字段中键入时出错

python - 如何从 django 中的 html 表单中获取选择字段文本?

python - 是否有 libjpeg 在 python 中的实现?

ruby - 遍历嵌套列表中的元素

list - 如何仅使用基本操作递归反转列表?

在任意位置插入列的 Pythonic 方式

java - List.of() 在访问者模式中的用法

c++ - 元组和总结

python - 转换元组列表的大多数 pythonic 方法