[(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]
¿Cómo devuelvo el 2º valor de cada tupla dentro de esta lista?Acceso a un valor en una tupla que está en una lista
[(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]
¿Cómo devuelvo el 2º valor de cada tupla dentro de esta lista?Acceso a un valor en una tupla que está en una lista
Con una lista de comprensión.
[x[1] for x in L]
podría sugerir:
Norm Matloff's Quick Python Tutorials
Ir a la sección de tuplas. Tendrás tu respuesta y una guía superior para aprender los fundamentos de Python.
El enlace está roto. conoces el nuevo lugar donde reside ahora – LonelySoul
@LonelySoul: lo arregló. – LarsH
Respuesta de Ignacio es lo que quieres. Sin embargo, como alguien que también está aprendiendo Python, déjame intentar diseccionarlo por ti ... Como se mencionó, es una lista de comprensión (cubierta en DiveIntoPython3, por ejemplo). Aquí están algunos puntos:
[x[1] for x in L]
[]
's alrededor de la línea de código. Estos son los que definen una lista. Esto le dice que este código devuelve una lista, por lo que es del tipo list
. Por lo tanto, esta técnica se llama "lista de comprensión".L = [(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]
antes de ejecutar el código anterior.x
es una variable que sólo existe en la comprensión - intentar acceder x
fuera de la comprensión, o escriba type(x)
después de ejecutar la línea anterior y se le dirá NameError: name 'x' is not defined
, mientras que los rendimientos type(L)
<class 'list'>
.x[1]
apunta al segundo elemento en cada una de las tuplas, mientras que x[0]
apuntaría a cada uno de los primeros elementos.Es difícil decir cuánto intentó resolver el problema antes de hacer la pregunta, pero quizás no estaba familiarizado con las comprensiones. Pasaría algún tiempo leyendo Chapter 3 of DiveIntoPython o cualquier recurso sobre comprensión. Buena suerte.
En 2.x, 'x' existirá fuera de la LC, con el último valor vinculado a ella. Esto está arreglado en 3.x. –
No me di cuenta de esto. Gracias por la info. – gary
Awesome explanation @gary. Agradezco especialmente que hayas señalado a qué se refiere L. –
Una comprensión de la lista es absolutamente la manera de hacer esto. Otra forma en que debería ser más rápido es map
y itemgetter
.
import operator
new_list = map(operator.itemgetter(1), old_list)
En respuesta al comentario de que el PO no pudo encontrar una respuesta en Google, voy a señalar una manera muy ingenua para hacerlo.
new_list = []
for item in old_list:
new_list.append(item[1])
Esto utiliza:
append
en una lista.Si alguien está tratando de aprender un idioma y no puede juntar estas piezas básicas por sí mismos, entonces tienen que vista como un ejercicio y hacerlo por sí mismos, incluso si se lleva a veinte horas.
Uno tiene que aprender a pensar en lo que uno quiere y comparar eso con las herramientas disponibles . Cada elemento en mi segunda respuesta debe ser cubierto en un tutorial básico. No puede aprender a programar sin leer un.
Entiendo que esta es una pregunta simple. ¿Es TAN un lugar tan elitista? Intente buscar en Google la pregunta, los resultados no son lo que necesito. Aprendí Python de la manera difícil y no encontré esto allí. He hecho algunas preguntas antes sobre el mejor enfoque para aprender Python y la respuesta unánime es obtener un libro básico y simplemente sumergirme. Me frustra y no puedo encontrar la solución en ningún libro o material en línea. por ahora? Además, su comentario no es útil y desalienta a los nuevos miembros a publicar en SO. – super9
@Nai: sugiero leer el tutorial de Python: http://docs.python.org/tutorial/index.html. En general, la documentación es muy buena. Y a veces, uno solo tiene que probar;) –
Busqué en Google "acceder al elemento en tupla" con la intención de acceder a un elemento en una lista de tuplas. Me llevó a tu pregunta, así que gracias. Soy bastante nuevo en Python y no encuentro la respuesta particularmente intuitiva, ¡pero solo soy yo! –