Obtener un valor de una tupla
¿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 algunas docenas de líneas a mi función, duplicando su longitud.
Aceptado
Puedes escribir
i = 5 + tup()[0]
Las tuplas se pueden indexar como listas.
La principal diferencia entre tuplas y listas es que las tuplas son inmutables: no puedes establecer los elementos de una tupla con valores diferentes, ni agregar o eliminar elementos como puedes hacerlo de una lista. Pero aparte de eso, en la mayoría de las situaciones funcionan más o menos igual.
Para cualquiera que en el futuro busque una respuesta, me gustaría darle 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 más las cosas para aquellos que lo necesitan.