# python – get list of tuples first index?

Each Answer to this Q is separated by one/two green lines.

What’s the most compact way to return the following:

Given a list of tuples, return a list consisting of the tuples first (or second, doesn’t matter) elements.

For:

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

returned list would be

``````[1,2,3]
``````

use zip if you need both

``````>>> r=(1,'one'),(2,'two'),(3,'three')
>>> zip(*r)
[(1, 2, 3), ('one', 'two', 'three')]
``````

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

``````>>> 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]
``````

This is using a list comprehension (have a look at this link). So it iterates through the elements in `mylist`, setting `i` and `j` to the two elements in the tuple, in turn. It is effectively equivalent to:

``````>>> newlist = []
>>> for i, j in mylist:
...     newlist.append(i)
...
>>> newlist
[1, 2, 3]
``````

Try this.

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

You can try this too..

``````dict(my_list).keys()
``````

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .