Tutorials Logic
Tutorials Logic, IN info@tutorialslogic.com
Navigation
Home About Us Contact Us Blogs FAQs
Tutorials
All Tutorials
Services
Academic Projects Resume Writing Website Development
Practice
Quiz Challenge Interview Questions Certification Practice
Tools
Online Compiler JSON Formatter Regex Tester CSS Unit Converter Color Picker
Compiler Tools

Tuples in Python — Immutable Sequences Guide

What is a Tuple?

A tuple is an ordered, immutable collection. Once created, you cannot change, add, or remove items. Tuples are faster than lists and are used for data that shouldn't change.

  • Ordered - items maintain insertion order
  • Immutable - cannot be modified after creation
  • Allows duplicates
  • Faster than lists for iteration
  • Can be used as dictionary keys (lists cannot)

Creating Tuples

Creating Tuples
empty = ()
single = (42,)          # trailing comma required for single-item tuple
single2 = 42,           # parentheses optional
coords = (10.5, 20.3)
colors = ("red", "green", "blue")
mixed = (1, "hello", 3.14, True)
nested = ((1, 2), (3, 4), (5, 6))

# From other iterables
from_list = tuple([1, 2, 3])
from_str  = tuple("abc")    # ('a', 'b', 'c')
from_range = tuple(range(5)) # (0, 1, 2, 3, 4)

print(type(coords))   # <class 'tuple'>
print(len(colors))    # 3

Accessing Elements

Indexing & Slicing
colors = ("red", "green", "blue", "yellow", "purple")

print(colors[0])    # red
print(colors[-1])   # purple
print(colors[1:3])  # ('green', 'blue')
print(colors[::-1]) # reversed tuple

# Nested tuple access
matrix = ((1, 2, 3), (4, 5, 6))
print(matrix[1][2])  # 6

# Unpacking
x, y, z = (10, 20, 30)
print(x, y, z)  # 10 20 30

# Extended unpacking
first, *rest = (1, 2, 3, 4, 5)
print(first)  # 1
print(rest)   # [2, 3, 4, 5]

*start, last = (1, 2, 3, 4, 5)
print(start)  # [1, 2, 3, 4]
print(last)   # 5

Tuple Methods

Tuples only have two methods since they're immutable.

MethodDescription
count(x)Returns number of times x appears
index(x)Returns index of first occurrence of x
Tuple Methods & Operations
nums = (3, 1, 4, 1, 5, 9, 2, 6, 1)

print(nums.count(1))   # 3
print(nums.index(5))   # 4

# Concatenation and repetition
a = (1, 2, 3)
b = (4, 5, 6)
print(a + b)    # (1, 2, 3, 4, 5, 6)
print(a * 3)    # (1, 2, 3, 1, 2, 3, 1, 2, 3)

# Membership
print(5 in nums)    # True
print(7 not in nums) # True

# Iteration
for color in ("red", "green", "blue"):
    print(color)

# Convert to list to modify, then back
t = (1, 2, 3)
lst = list(t)
lst.append(4)
t = tuple(lst)
print(t)  # (1, 2, 3, 4)

Tuple vs List - When to Use Which

FeatureTupleList
MutabilityImmutableMutable
Syntax(1, 2, 3)[1, 2, 3]
PerformanceFasterSlower
Dict keyYesNo
Use caseFixed data (coordinates, RGB, DB rows)Dynamic collections
Practical Tuple Uses
# Return multiple values from a function
def min_max(numbers):
    return min(numbers), max(numbers)

low, high = min_max([3, 1, 4, 1, 5, 9])
print(low, high)  # 1 9

# Tuple as dict key (lists can't be keys)
locations = {
    (40.7128, -74.0060): "New York",
    (51.5074, -0.1278):  "London",
}
print(locations[(40.7128, -74.0060)])  # New York

# Named tuple - readable tuple with field names
from collections import namedtuple
Point = namedtuple("Point", ["x", "y"])
p = Point(3, 4)
print(p.x, p.y)   # 3 4
print(p[0], p[1]) # 3 4 (still indexable)

Ready to Level Up Your Skills?

Explore 500+ free tutorials across 20+ languages and frameworks.