A tuple is a collection of ordered and immutable (unchangeable) elements.
It is similar to a list in Python, but the main difference is that tuples are immutable, meaning that their elements cannot be modified once they are created.
Tuples are often used to store related pieces of data, such as the x and y coordinates of a point in a 2D space.
Creating a Tuple
A tuple can be created by enclosing elements within parentheses ( ), separated by commas ,.
# creating a tuple with 3 elements my_tuple = (1, "hello", 3.14)
You can also create a tuple without using parentheses, by separating the elements with commas:
# creating a tuple without using parentheses my_tuple = 1, "hello", 3.14
It's also possible to create a tuple with only one element, called a singleton tuple:
# creating a singleton tuple my_tuple = (1,)
Note that a single element tuple with parentheses and without parentheses is different, the first is a tuple the second is an int or any type:
# Examples tup = (1) # not tuple tup = (1,) # tuple
Accessing Tuple Elements
You can access individual elements of a tuple by using indexing, just like with lists.
The indexing starts at 0, so the first element has an index of 0, the second has an index of 1, and so on.
# accessing the first element of a tuple print(my_tuple) # Output: 1 # accessing the second element of a tuple print(my_tuple) # Output: "hello" # accessing the third element of a tuple print(my_tuple) # Output: 3.14
You can also use negative indexing to access elements from the end of the tuple.
# accessing the last element of a tuple print(my_tuple[-1]) # Output: 3.14 # accessing the second to last element of a tuple print(my_tuple[-2]) # Output: "hello"
You can also use slicing to access a range of elements in a tuple.
The syntax for slicing is similar to that of lists, but since tuples are immutable, you cannot use slicing to change elements in a tuple.
# accessing the first two elements of a tuple print(my_tuple[0:2]) # Output: (1, "hello") # accessing the last two elements of a tuple print(my_tuple[-2:]) # Output: ("hello", 3.14)
You can also use tuple unpacking to assign the elements of a tuple to separate variables.
x, y, z = my_tuple print(x) # Output: 1 print(y) # Output: "hello" print(z) # Output: 3.14
Tuple Concatenation and Repetition
You can use the + operator to concatenate two tuples together, creating a new tuple that contains all the elements from both original tuples.
# concatenating two tuples tuple1 = (1, 2, 3) tuple2 = (4, 5, 6) tuple3 = tuple1 + tuple2 print(tuple3) # Output: (1, 2, 3, 4, 5, 6)
You can also use the * operator to repeat a tuple a certain number of times.
# repeating a tuple 3 times tuple4 = tuple1 * 3 print(tuple4) # Output: (1, 2, 3, 1, 2, 3, 1, 2, 3)
Although tuples are immutable, they do have some built-in methods that can be used to perform certain operations.
Some of the most commonly used tuple methods are:
count(): returns the number of times a specified element appears in the tuple.
tuple5 = (1, 2, 3, 2, 4, 2) print(tuple5.count(2)) # Output: 3
index(): returns the index of the first occurrence of a specified element in the tuple.
print(tuple5.index(4)) # Output: 4
len(): returns the number of elements in the tuple.
print(len(tuple5)) # Output: 6
In conclusion, Python tuples are a useful data structure that allows you to store multiple related pieces of data in an ordered and immutable way.
They are similar to lists in many ways, but offer the added benefit of immutability, which can be useful in certain situations.
With the knowledge of creating, accessing, slicing, unpacking, concatenating and repetition, and methods of tuple you are ready to use tuple in your projects.