【问题标题】:How to remove the 2nd element of every tuple that belongs to a list of tuples?如何删除属于元组列表的每个元组的第二个元素?
【发布时间】:2014-04-09 08:08:33
【问题描述】:

我有一个看起来像这样的元组列表;

ListTuple=[('Tuple1', '2ndElement', '3rdElement', 1L), ('Tuple2', '2ndElement', '3rdElement', 2L)]

我想从这个元组列表中的每个元组中删除第二个元素。输出将如下所示;

OutputTuple=[('Tuple1', '3rdElement', 1L), ('Tuple2', '3rdElement', 2L)]

如何在 python 中做到这一点?非常感谢。

【问题讨论】:

    标签: python list python-2.7 tuples


    【解决方案1】:

    OutputTuple = [(a, b, d) for a, b, c, d in ListTuple]

    哦,顺便说一句,因为这些是元组(不可变),你不能从它们中“删除”东西。只创造新的东西。

    【讨论】:

    • 你让它看起来如此简单。像往常一样,我觉得自己像个该死的傻瓜。其他答案也是对的。对于像我这样的白痴来说,你的最易读。谢谢!!
    • @user3293156:这就是你的python!很高兴能提供帮助。
    【解决方案2】:

    保留一切第二项。

    In [4]: [(t[0], t[2], t[3]) for t in ListTuple]
    Out[4]: [('Tuple1', '3rdElement', 1L), ('Tuple2', '3rdElement', 2L)]
    

    【讨论】:

      【解决方案3】:

      此解决方案无需假设每个元组中的元素数量固定,甚至每个元组中的元素数量都相同。

      ListTuple=[('Tuple1', '2ndElement', '3rdElement', 1L), ('Tuple2', '2ndElement', '3rdElement', 2L)]
      output = [((t[0],)+t[2:]) for t in ListTuple]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-11
        • 1970-01-01
        • 2013-04-29
        • 2011-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多