Obtendo um valor de uma tupla


152

Existe uma maneira de obter um valor de uma tupla no Python usando expressões?

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

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

Eu sei que posso fazer isso:

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

Mas isso adicionaria algumas dezenas de linhas à minha função, dobrando seu comprimento.


1
O _também é apenas uma variável. É frequentemente usado para atribuir valor a ele que pode ser descartado. Mas, teoricamente, você pode obter o valor de_
Info-Tela

Respostas:


202

Você pode escrever

i = 5 + tup()[0]

As tuplas podem ser indexadas como as listas.

A principal diferença entre tuplas e listas é que elas são imutáveis ​​- você não pode definir os elementos de uma tupla com valores diferentes ou adicionar ou remover elementos de uma lista. Mas, fora isso, na maioria das situações, eles funcionam da mesma forma.


54

Para quem procura uma resposta no futuro, gostaria de dar uma resposta muito mais clara à pergunta.

# 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 isso esclareça as coisas ainda mais para aqueles que precisam.


1
Obrigado pela atualização. Para garantir a integridade, você pode adicionar o uso do sublinhado como espaço reservado 'fictício' na descompactação da tupla.
Emile
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.