Hacer referencia a un elemento en una lista de tuplas

Lo siento de antemano, pero soy nuevo en Python. Tengo una lista de tuples y me preguntaba cómo puedo hacer referencia, por ejemplo, al primer elemento de cada tuple dentro de la lista. Pensaría que es algo como

 for i in number_of_tuples : first_element = myList[i[0]] 

ya sabes, [list_element[tuple_element]] ? Sin embargo, este no parece ser el enfoque correcto. Cualquier ayuda sería muy apreciada.

Gracias,

Tornero

Todas las demás respuestas aquí son correctas, pero no explican por qué lo que estaba intentando estaba mal. Cuando haces myList[i[0]] le estás diciendo a Python que i es una tupla y quieres que el valor o el primer elemento de tuple i sea ​​el índice para myList.

En la mayoría de los lenguajes de progtwigción, cuando necesita acceder a un tipo de datos nesteds (como matrices, listas o tuplas), agregue los corchetes para llegar al elemento más interno. El primer corchete le da la ubicación de la tupla en su lista. El segundo soporte le da la ubicación del elemento en la tupla.

Este es un ejemplo rudimentario rápido que se me ocurrió:

 info = [ ( 1, 2), (3, 4), (5, 6) ] info[0][0] == 1 info[0][1] == 2 info[1][0] == 3 info[1][1] == 4 info[2][0] == 5 info[2][1] == 6 

Puede obtener una lista del primer elemento en cada tupla utilizando una lista de comprensión :

 >>> my_tuples = [(1, 2, 3), ('a', 'b', 'c', 'd', 'e'), (True, False), 'qwerty'] >>> first_elts = [x[0] for x in my_tuples] >>> first_elts [1, 'a', True, 'q'] 

El código

 my_list = [(1, 2), (3, 4), (5, 6)] for t in my_list: print t 

huellas dactilares

 (1, 2) (3, 4) (5, 6) 

El bucle se repite en my_list y asigna los elementos de my_list a t uno tras otro. Los elementos de my_list son tuplas, por lo que t siempre será una tupla. Para acceder al primer elemento de la tupla t , use t[0] :

 for t in my_list: print t[0] 

Para acceder al primer elemento de la tupla en el índice i dado en la lista, puede usar

 print my_list[i][0] 

Más bien que:

 first_element = myList[i[0]] 

Probablemente quieras:

 first_element = myList[i][0] 

También puede utilizar el operador itemgetter :

 from operator import itemgetter my_tuples = [('c','r'), (2, 3), ('e'), (True, False),('text','sample')] map(itemgetter(0), my_tuples) 

Así que tiene “una lista de tuplas”, déjeme suponer que está manipulando una matriz de 2 dimensiones y, en este caso, una interfaz conveniente para lograr lo que necesita es la que proporciona uno.

Digamos que tienes una matriz arr = numpy.array([[1, 2], [3, 4], [5, 6]]) , puedes usar arr[:, 0] para obtener una nueva matriz de todos los primeros Elementos en cada “tupla”.

Aquí hay un ejemplo rápido:

 termList = [] termList.append(('term1', [1,2,3,4])) termList.append(('term2', [5,6,7,8])) termList.append(('term3', [9,10,11,12])) result = [x[1] for x in termList if x[0] == 'term3'] print(result)