Getting one value from a tuple


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.

Asked By: BCS



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.

Answered By: David Z

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

# or this
v1, v2 = my_tuple_fun()

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

Answered By: AbdulMueed


Single elements of a tuple a can be accessed -in an indexed array-like fashion-

via a[0], a[1], … depending on the number of elements in the tuple.


If your tuple is a=(3,"a")

  • a[0] yields 3,
  • a[1] yields "a"

Concrete answer to question

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

tup() returns a 2-tuple.

In order to "solve"

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

you select the 3 by:

tup()[0]    # first element

so all together:

i = 5 + tup()[0]


Go with namedtuple that allows you to access tuple elements by name (and by index). Details are at

>>> import collections
>>> MyTuple=collections.namedtuple("MyTuple", "mynumber, mystring")
>>> m = MyTuple(3, "hello")
>>> m[0]
>>> m.mynumber
>>> m[1]
>>> m.mystring
Answered By: Martin Senne
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.