Python tuple

The tuple data structure is used to store a group of data.  The elements in this group are separated by a comma. Once created, the values of a tuple cannot change.  

Related Course:
Complete Python Bootcamp: Go from zero to hero in Python

Python Tuple

An empty tuple in Python would be defined as:

tuple = ()

A comma is required for a tuple with one item:

tuple = (3,)

The comma for one item may be counter intuitive,  but without the comma for a single item, you cannot access the element.  For multiple items, you do not have to put a comma at the end.  This set is an example:

personInfo = ("Diana", 32, "New York")

The data inside a tuple can be of one or more data types such as text and numbers.

Data access

To access the data we can simply use an index. As usual, an index is a number between brackets:

#!/usr/bin/env python 
personInfo = ("Diana", 32, "New York")

If you want to assign multiple variables at once, you can use tuples:

#!/usr/bin/env python
name,age,country,career = ('Diana',32,'Canada','CompSci')

On the right side the tuple is written. Left of the operator  equality operator are the corresponding output variables.

Append to a tuple in Python

If you have an existing tuple, you can append to it with the + operator.  You can only append a tuple to an existing tuple.

#!/usr/bin/env python
x = (3,4,5,6)
x = x + (1,2,3)
Python range
Python dictionaries
This entry was posted in Beginner and tagged , , . Bookmark the permalink.

19 Responses to Python tuple

  1. Vaishnavi says:

    How does Join work ?
    When I give –
    person = (‘Diana’,’Canada’,’CompSci’ )
    s = ‘-trial ‘.join(person)
    , the output is ” Diana-trial Canada-trial CompSci” . The join does not happen for the last value.

    • Frank says:

      Hi vaishnavi, I’ll look at this asap.

    • Frank says:

      Join returns a string which is the concatenation of the strings in the iterable iterable. The separator between elements is the string providing this method.
      In this case we have concatenations (Diana, Canada) and(Canada, CompSci). They are connected with the separator.

      To add the text ‘-trial’ to each element, simply use a loop on the list with a concatenation.

      • Vaishnavi says:

        Hi Frank, thanks a lot for your reply..!
        [ Sorry for the late reply ..]
        I understood why it is not added at the end. But how do we achieve this using a loop.
        Is the below code correct ?

        person = ('Diana', 'Canada', 'CompSci' )
        for i in range (len(person)):
            s = '-trial'.join(person)
        print (s)

        Output: Diana-trialCanada-trialCompSci
        Even here the concatenation does not happen for the last one .

  2. Lei says:

    person = (‘Diana’,’Canada’,’CompSci’)
    s = ”.join(person)

    i can,t understand

  3. Lim says:

    why we have to use tuple? it seems all tuple’s usage also can be achieved by list.

  4. Pradeep Kaja says:

    I do not use this wording of Heterogeneous/Homogeneous. Its very confusion, because we can insert values of different data types in both list and tuple. I believe the only difference is that List is mutable Tuple is not. Tuple is fast accessed on memory when compared to List in some cases.

  5. Lee says:

    Why would you use a Tuple over a List? What’s the difference?

    • Frank says:

      Tuple is another datastructure, it has different properties. A tuple has no methods and cannot be changed once created. Tuples may be faster than lists to iterate.

    • Leasinop says:

      I also read that tuples are heterogeneous (could be used for various data types) while lists are homogeneous (should be used for one data type)

      • Reddy says:

        list are homogeneous.. ??? l= [“a”,”b”,”c”]; l.append(“d”); l.append(123); I added a string type and an integer type. Both worked fine.

        • Frank says:

          Hi Reddy, a python list can hold multiple datatypes:

          #!/usr/bin/env python
          l= ["a","b","c"];
          # print datatype
          for item in l:


          ['a', 'b', 'c', 'd', 123]
          <class 'str'>
          <class 'str'>
          <class 'str'>
          <class 'str'>
          <class 'int'>