35

返回以下内容的最紧凑方式是什么:

给定一个元组列表,返回一个由元组第一个(或第二个,无关紧要)元素组成的列表。

为了:

[(1,'one'),(2,'two'),(3,'three')]

返回的列表将是

[1,2,3]
4

5 回答 5

51

如果两者都需要,请使用 zip

>>> r=(1,'one'),(2,'two'),(3,'three')
>>> zip(*r)
[(1, 2, 3), ('one', 'two', 'three')]
于 2012-05-24T10:12:14.570 回答
39
>>> tl = [(1,'one'),(2,'two'),(3,'three')]
>>> [item[0] for item in tl]
[1, 2, 3]
于 2012-05-24T10:05:05.150 回答
13
>>> mylist = [(1,'one'),(2,'two'),(3,'three')]
>>> [j for i,j in mylist]
['one', 'two', 'three']
>>> [i for i,j in mylist]
[1, 2, 3]

这是使用列表理解(看看这个链接)。因此,它依次遍历mylist、设置ij到元组中的两个元素。它实际上等效于:

>>> newlist = []
>>> for i, j in mylist:
...     newlist.append(i)
... 
>>> newlist
[1, 2, 3]
于 2012-05-24T10:06:35.603 回答
3

试试这个。

>>> list(map(lambda x: x[0], my_list))
于 2018-08-15T14:22:10.887 回答
-2

你也可以试试这个。。

dict(my_list).keys()
于 2016-06-02T11:41:07.953 回答