【问题标题】:Remove element from tuple in a list从列表中的元组中删除元素
【发布时间】:2012-03-30 11:39:37
【问题描述】:

我的头撞到了墙上:

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

[('650', '724', '6354', '', '', ''), ('', '', '', '650', '723', '4539')]

并获得以下新列表:

[('650', '724', '6354'), ('650', '723', '4539')]

有什么想法吗?

【问题讨论】:

标签: python list tuples


【解决方案1】:

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 为真(意味着该值为真,或字符串为非空)。 p>

【讨论】:

    【解决方案2】:
    a = [('650', '724', '6354', '', '', ''), ('', '', '', '650', '723', '4539')]
    
    print [tuple(x for x in y if x) for y in a]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 2017-03-05
      相关资源
      最近更新 更多