# Python tuples

• Tuple is a ordered sequential data structure in python.
• Tuple is immutable hence can't be modified once created.
• Tuple stores the data in a sequential manner.
• Tuple items can be accessed with an index.
• The index starts from 0 to length of tuple - 1
• Tuple also supports negative indexing (i.e -1, -2, etc).

## create a tuple for fruits¶

fruits = ("apple", "apple", "banana", "cherry")
print(fruits)
# Output: ('apple', 'apple', 'banana', 'cherry')

## tuples can store different data types¶

elements = ("apple", 100, 3.5, {"name": "Anji"})
print(elements)
# Output: ('apple', 100, 3.5, {'name': 'Anji'})

## find length of a tuple¶

fruits = ("apple", "banana", "cherry")
print(len(fruits))
# Output: 3

## create tuple with one item¶

one_item = ("hello",)
print(one_item)
# Output: ('hello',)

## iterate through tuple with for loop¶

fruits = ("apple", "banana", "cherry")
for fruit in fruits:
print(fruit)
# Output:
# apple
# banana
# cherry

## concatenate two tuples with "+" operator¶

t1 = (1,2,3)
t2 = (4,5,6)
t3 = t1 + t2
print(t3)
# Output: (1, 2, 3, 4, 5, 6)

## slicing a tuple¶

• slice syntax: tuple[start : stop : step]
• default start is 0
• default end is length of tuple - 1
t = (1,2,3,4,5,6,7,8,9,10)
t1 = t[0:5]
print(t1)
# Output: (1, 2, 3, 4, 5)
t2 = t[5:]
print(t2)
# Output: (6, 7, 8, 9, 10)
t3 = t[1:8:2]
# Output: (2, 4, 6, 8)

## convert other iterable data type to tuple¶

items = [1,2,3,4]
print(type(items))
# Output: <class 'list'>

t1 = tuple(items)
print(type(t1))
# Output: <class 'tuple'>

data = {"one": 1, "two": 2}
t2 = tuple(data)
print(t2)
# Output: ('one', 'two')
print(type(t2))
# Output: <class 'tuple'>

## count an element in tuple¶

t = (1,2,3,4,5,6,3,10,6)
element = 3
print(t.count(element))
# Output: 2

## get index of an element in tuple¶

• syntax: tuple.index(element, start_index, end_index)
• default start index 0
• default end index length of tuple - 1
t = (1,2,3,4,5,6,3,10,6)
element = 4
print(t.index(element))
# Output: 3
print(t.index(element, 2))
# Output: 3
print(t.index(element, 2, 9))
# Output: 3

## unpack a tuple¶

t1 = (1,2,3)
a, b, c = t1
print(a, b, c)
# Output: 1 2 3

t2 = (1,2,3,4,5,6,7,8)
one, two, *other_numbers = t2
print(one, two, other_numbers)
# Output: 1 2 [3, 4, 5, 6, 7, 8]