python – obtener lista de tuplas primer índice?

¿Cuál es la forma más compacta de devolver lo siguiente:

Dada una lista de tuplas, devuelva una lista que conste de las tuplas primero (o segundo, no importa) los elementos.

Por:

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

la lista devuelta sería

 [1,2,3] 

Usa zip si necesitas ambos

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

Esto está usando una lista de comprensión (mira este enlace) . Así que itera a través de los elementos en mylist , estableciendo i y j a los dos elementos en la tupla, a su vez. Es efectivamente equivalente a:

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

Puedes probar esto también ..

 dict(my_list).keys() 

Prueba esto.

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