从元组中获得一个价值

问题:从元组中获得一个价值

有没有一种方法可以使用表达式从Python元组中获取一个值?

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

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

我知道我可以这样做:

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

但这会给我的函数增加几十行,使其长度加倍。

Is there a way to get one value from a tuple in Python using expressions?

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

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

I know I can do this:

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

But that would add a few dozen lines to my function, doubling its length.


回答 0

你可以写

i = 5 + tup()[0]

元组可以像列表一样被索引。

元组和列表之间的主要区别是元组是不可变的-您不能将元组的元素设置为不同的值,也不能像从列表中那样添加或删除元素。但是除此之外,在大多数情况下,它们的工作原理几乎相同。

You can write

i = 5 + tup()[0]

Tuples can be indexed just like lists.

The main difference between tuples and lists is that tuples are immutable – you can’t set the elements of a tuple to different values, or add or remove elements like you can from a list. But other than that, in most situations, they work pretty much the same.


回答 1

对于以后寻求答案的任何人,我想对这个问题给出更清晰的答案。

# 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()

希望这能为需要它的人进一步解决。

For anyone in the future looking for an answer, I would like to give a much clearer answer to the question.

# 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()

Hope this clears things up further for those that need it.