Bird
Raised Fist0
Pythonprogramming~5 mins

Tuple vs list comparison in Python - Quick Revision & Key Differences

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a tuple in Python?
A tuple is an ordered collection of items which is immutable, meaning you cannot change its content after creation.
Click to reveal answer
beginner
What is a list in Python?
A list is an ordered collection of items which is mutable, meaning you can add, remove, or change items after creation.
Click to reveal answer
beginner
Can you change an element inside a tuple after it is created?
No, tuples are immutable. Once created, you cannot change, add, or remove elements inside a tuple.
Click to reveal answer
intermediate
Which is faster to access: tuple or list?
Tuples are generally faster to access than lists because they are immutable and have a simpler structure.
Click to reveal answer
beginner
When should you use a tuple instead of a list?
Use a tuple when you want to store data that should not change, like fixed settings or coordinates. Use a list when you need to modify the data later.
Click to reveal answer
Which of the following is immutable in Python?
ADictionary
BList
CSet
DTuple
What happens if you try to change an element of a tuple?
APython raises an error
BNothing happens
CThe tuple converts to a list automatically
DThe element changes successfully
Which data type is better when you need to add or remove items frequently?
ATuple
BList
CString
DInteger
Which of these is a correct way to create a tuple?
A(1, 2, 3)
B[1, 2, 3]
C{1, 2, 3}
D"1, 2, 3"
Which statement is true about tuples and lists?
ATuples are mutable, lists are immutable
BBoth tuples and lists are immutable
CLists are mutable, tuples are immutable
DBoth tuples and lists are mutable
Explain the main differences between tuples and lists in Python.
Think about whether you can change the data after creating it.
You got /4 concepts.
    When would you choose a tuple over a list in your program?
    Consider if the data should stay the same or change.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which of the following statements about tuples and lists in Python is correct?
      easy
      A. Both tuples and lists use parentheses and are mutable.
      B. Tuples use square brackets and are mutable; lists use parentheses and are immutable.
      C. Tuples use parentheses and are immutable; lists use square brackets and are mutable.
      D. Both tuples and lists use square brackets and are immutable.

      Solution

      1. Step 1: Identify tuple and list syntax

        Tuples are created with parentheses (), and lists with square brackets [].
      2. Step 2: Understand mutability

        Tuples cannot be changed after creation (immutable), lists can be changed (mutable).
      3. Final Answer:

        Tuples use parentheses and are immutable; lists use square brackets and are mutable. -> Option C
      4. Quick Check:

        Tuple = immutable, parentheses; List = mutable, brackets [OK]
      Hint: Remember: parentheses = tuple (fixed), brackets = list (changeable) [OK]
      Common Mistakes:
      • Confusing brackets and parentheses
      • Thinking tuples are mutable
      • Assuming lists use parentheses
      2. Which of the following is the correct way to compare a tuple (1, 2, 3) with a list [1, 2, 3] for equality in Python?
      easy
      A. (1, 2, 3) is [1, 2, 3]
      B. (1, 2, 3) == [1, 2, 3]
      C. list((1, 2, 3)) == (1, 2, 3)
      D. tuple([1, 2, 3]) == (1, 2, 3)

      Solution

      1. Step 1: Understand direct comparison

        Comparing a tuple and list directly returns False because they are different types.
      2. Step 2: Convert list to tuple for comparison

        Converting the list to a tuple makes the types match, so equality checks content and order.
      3. Final Answer:

        tuple([1, 2, 3]) == (1, 2, 3) -> Option D
      4. Quick Check:

        Convert list to tuple before comparing [OK]
      Hint: Convert list to tuple before comparing to tuple [OK]
      Common Mistakes:
      • Comparing tuple and list directly
      • Using 'is' instead of '=='
      • Converting tuple to list instead of list to tuple
      3. What is the output of the following code?
      t = (4, 5, 6)
      l = [4, 5, 6]
      print(t == tuple(l))
      medium
      A. True
      B. False
      C. TypeError
      D. None

      Solution

      1. Step 1: Convert list to tuple

        tuple(l) converts list [4, 5, 6] to tuple (4, 5, 6).
      2. Step 2: Compare tuples

        t == tuple(l) compares (4, 5, 6) == (4, 5, 6), which is True.
      3. Final Answer:

        True -> Option A
      4. Quick Check:

        Same content and type means equality True [OK]
      Hint: Convert list to tuple to compare with tuple [OK]
      Common Mistakes:
      • Expecting False because types differ
      • Confusing '==' with 'is'
      • Forgetting to convert list before comparing
      4. The following code tries to check if a tuple and a list have the same elements:
      t = (7, 8, 9)
      l = [7, 8, 9]
      if t == l:
          print("Equal")
      else:
          print("Not equal")

      What is the problem and how to fix it?
      medium
      A. No problem; it prints "Equal".
      B. It prints "Not equal" because tuple and list types differ; fix by converting list to tuple.
      C. It causes a TypeError; fix by converting tuple to list.
      D. It prints "Not equal" because elements differ; fix by sorting both.

      Solution

      1. Step 1: Understand type difference in comparison

        Comparing tuple and list directly returns False even if elements match.
      2. Step 2: Fix by converting list to tuple

        Convert list to tuple before comparing to match types and check content equality.
      3. Final Answer:

        It prints "Not equal" because tuple and list types differ; fix by converting list to tuple. -> Option B
      4. Quick Check:

        Convert list to tuple for correct equality check [OK]
      Hint: Convert list to tuple before comparing to tuple [OK]
      Common Mistakes:
      • Assuming direct comparison works
      • Trying to convert tuple to list instead
      • Ignoring type difference in equality
      5. You have a list of mixed tuples and lists:
      data = [(1, 2), [1, 2], (3, 4), [3, 4]]

      You want to count how many unique pairs are present, considering tuples and lists with the same elements as equal. Which code correctly counts unique pairs?
      hard
      A. unique = set(tuple(x) for x in data) print(len(unique))
      B. unique = set(list(x) for x in data) print(len(unique))
      C. unique = set(data) print(len(unique))
      D. unique = set(data) print(len(unique)) # Then convert to list

      Solution

      1. Step 1: Understand the problem

        Tuples and lists with same elements should be treated as equal pairs.
      2. Step 2: Convert all elements to tuples

        Convert each item to tuple so all pairs have the same type for comparison and hashing in set.
      3. Step 3: Use set to find unique pairs

        Set removes duplicates, so length of set is count of unique pairs.
      4. Final Answer:

        unique = set(tuple(x) for x in data) print(len(unique)) -> Option A
      5. Quick Check:

        Convert all to tuple before set to count unique pairs [OK]
      Hint: Convert all to tuple before set to count unique pairs [OK]
      Common Mistakes:
      • Using set directly on mixed types
      • Converting to list inside set (unhashable error)
      • Ignoring type difference in uniqueness