Какой самый компактный способ вернуть следующее:
Учитывая список кортежей, вернуть список, состоящий из первых (или вторых, не имеет значения) элементов кортежей.
Для:
[(1,'one'),(2,'two'),(3,'three')]
возвращенный список будет
[1,2,3]
Какой самый компактный способ вернуть следующее:
Учитывая список кортежей, вернуть список, состоящий из первых (или вторых, не имеет значения) элементов кортежей.
Для:
[(1,'one'),(2,'two'),(3,'three')]
возвращенный список будет
[1,2,3]
используйте молнию, если вам нужно и то, и другое
>>> r=(1,'one'),(2,'two'),(3,'three')
>>> zip(*r)
[(1, 2, 3), ('one', 'two', 'three')]
>>> 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]
Попробуй это.
>>> list(map(lambda x: x[0], my_list))
Вы тоже можете попробовать это ..
dict(my_list).keys()