Вопрос по python, list – python - получить список кортежей первым индексом?

31

Какой самый компактный способ вернуть следующее:

Получив список кортежей, верните список, состоящий из первых (или вторых, неважных) элементов кортежей.

За:

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

возвращенный список будет

[1,2,3]

Ваш Ответ

5   ответов
0

Попробуй это.

>>> list(map(lambda x: x[0], my_list))
32

>>> tl = [(1,'one'),(2,'two'),(3,'three')]
>>> [item[0] for item in tl]
[1, 2, 3]
12

>>> 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, настройкаi а такжеj к двум элементам в кортеже, по очереди. Это фактически эквивалентно:

>>> newlist = []
>>> for i, j in mylist:
...     newlist.append(i)
... 
>>> newlist
[1, 2, 3]
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded user1413824
Error: User Rate Limit Exceededlist comprehension
43

используйте почтовый индекс, если вам нужно оба

>>> r=(1,'one'),(2,'two'),(3,'three')
>>> zip(*r)
[(1, 2, 3), ('one', 'two', 'three')]
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

Вы можете попробовать это тоже ..

dict(my_list).keys()
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы