Получение одного значения из кортежа python


есть ли способ получить одно значение из кортежа в python с помощью выражений?

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

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

Я знаю, что могу это сделать:

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

но это добавило бы несколько десятков строк к моей функции, удваивая ее длину.

2 100

2 ответа:

можно писать

i = 5 + Tup()[0]

кортежи могут быть проиндексированы так же, как списки.

основное различие между кортежами и списками заключается в том, что кортежи неизменяемы - вы не можете установить элементы кортежа в разные значения или добавлять или удалять элементы, как вы можете из списка. Но кроме этого, в большинстве ситуаций они работают почти одинаково.

для тех, кто в будущем ищет ответ, я хотел бы дать гораздо более ясный ответ на этот вопрос.

# for making a tuple

MyTuple = (89,32)
MyTupleWithMoreValues = (1,2,3,4,5,6)

# to concatinate tuples
AnotherTuple = MyTuple + MyTupleWithMoreValues
print AnotherTuple

# it should print 89,32,1,2,3,4,5,6

# getting a value from a tuple is similar to a list
firstVal = MyTuple[0]
secondVal = MyTuple[1]

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

# or this
v1,v2 = MyTupleFun()

надеюсь, что это прояснит ситуацию для кого-то еще.