Obteniendo un valor de una tupla


152

¿Hay alguna manera de obtener un valor de una tupla en Python usando expresiones?

def tup():
  return (3, "hello")

i = 5 + tup()  # I want to add just the three

Sé que puedo hacerlo:

(j, _) = tup()
i = 5 + j

Pero eso agregaría unas pocas docenas de líneas a mi función, duplicando su longitud.


1
El _también es solo una variable. A menudo se usa para asignarle un valor que se puede descartar. Pero, en teoría, puede obtener el valor de_
Info-Screen

Respuestas:


202

Puedes escribir

i = 5 + tup()[0]

Las tuplas se pueden indexar al igual que las listas.

La principal diferencia entre las tuplas y las listas es que las tuplas son inmutables: no puede establecer los elementos de una tupla en valores diferentes, ni agregar o eliminar elementos como puede de una lista. Pero aparte de eso, en la mayoría de las situaciones, funcionan prácticamente igual.


54

Para cualquier persona en el futuro que busque una respuesta, me gustaría dar una respuesta mucho más clara a la pregunta.

# for making a tuple
my_tuple = (89, 32)
my_tuple_with_more_values = (1, 2, 3, 4, 5, 6)

# to concatenate tuples
another_tuple = my_tuple + my_tuple_with_more_values
print(another_tuple)
# (89, 32, 1, 2, 3, 4, 5, 6)

# getting a value from a tuple is similar to a list
first_val = my_tuple[0]
second_val = my_tuple[1]

# if you have a function called my_tuple_fun that returns a tuple,
# you might want to do this
my_tuple_fun()[0]
my_tuple_fun()[1]

# or this
v1, v2 = my_tuple_fun()

Espero que esto aclare aún más las cosas para aquellos que lo necesitan.


1
Gracias por la actualización. Para completar, es posible que desee agregar el uso del guión bajo como marcador de posición 'ficticio' en el desempaquetado de tuplas.
Emile
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.