如何删除列表中每个元组的第二个元素?

1 投票
3 回答
5059 浏览
提问于 2025-04-18 01:59

我有一个包含多个元组的列表,元组的样子是这样的:

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

我想把这个列表中每个元组的第二个元素去掉。处理完后,结果应该是这样的:

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

请问在Python中怎么做到这一点呢?非常感谢。

3 个回答

2

这个解决方案不需要假设每个元组里有固定数量的元素,甚至每个元组里的元素数量也可以不一样。

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

保留所有内容,除了第二个项目。

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

这段代码的意思是:从一个叫做ListTuple的列表中,提取出每一组数据,生成一个新的列表OutputTuple。每一组数据里有四个元素,分别是a、b、c和d,但在新列表里只保留a、b和d。

顺便说一下,因为这些是元组(也就是不可改变的东西),所以你不能从里面“删除”任何东西。你只能创建一个新的东西。

撰写回答