Получение одного значения из кортежа python
есть ли способ получить одно значение из кортежа в python с помощью выражений?
def Tup():
return (3,"hello")
i = 5 + Tup(); ## I want to add just the three
Я знаю, что могу это сделать:
(j,_) = Tup()
i = 5 + j
но это добавило бы несколько десятков строк к моей функции, удваивая ее длину.
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()
надеюсь, что это прояснит ситуацию для кого-то еще.