Bird
Raised Fist0
Pythonprogramming~10 mins

List concatenation and repetition in Python - Step-by-Step Execution

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
Concept Flow - List concatenation and repetition
Start with list A
Concatenate: A + B
New list with elements of A then B
Repeat list A n times
New list with A repeated n times
End
We start with two lists, join them end-to-end for concatenation, or repeat one list multiple times to make a longer list.
Execution Sample
Python
a = [1, 2]
b = [3, 4]
c = a + b
r = a * 3
print(c)
print(r)
This code joins two lists and repeats one list three times, then prints both results.
Execution Table
StepOperationList aList bResult c (a+b)Result r (a*3)Output
1Initialize a[1, 2]N/AN/AN/AN/A
2Initialize b[1, 2][3, 4]N/AN/AN/A
3Concatenate c = a + b[1, 2][3, 4][1, 2, 3, 4]N/AN/A
4Repeat r = a * 3[1, 2][3, 4][1, 2, 3, 4][1, 2, 1, 2, 1, 2]N/A
5Print c[1, 2][3, 4][1, 2, 3, 4][1, 2, 1, 2, 1, 2][1, 2, 3, 4]
6Print r[1, 2][3, 4][1, 2, 3, 4][1, 2, 1, 2, 1, 2][1, 2, 1, 2, 1, 2]
💡 All operations complete, lists concatenated and repeated as expected.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4Final
aundefined[1, 2][1, 2][1, 2][1, 2][1, 2]
bundefinedundefined[3, 4][3, 4][3, 4][3, 4]
cundefinedundefinedundefined[1, 2, 3, 4][1, 2, 3, 4][1, 2, 3, 4]
rundefinedundefinedundefinedundefined[1, 2, 1, 2, 1, 2][1, 2, 1, 2, 1, 2]
Key Moments - 3 Insights
Why does 'a + b' create a new list instead of changing 'a'?
Because '+' creates a new list combining both lists without modifying the originals, as shown in step 3 of the execution_table.
What happens if we multiply a list by zero or a negative number?
Multiplying by zero or negative number results in an empty list, since repetition count is zero or less, which is not shown here but follows the same logic as step 4.
Does repeating a list with '*' duplicate the elements or references?
It duplicates references to the same elements, so if elements are mutable, changes affect all repeats. Here, elements are integers (immutable), so no side effects.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 4, what is the value of r?
A[1, 2, 3, 4]
B[3, 4, 3, 4, 3, 4]
C[1, 2, 1, 2, 1, 2]
D[1, 2]
💡 Hint
Check the 'Result r (a*3)' column at step 4 in the execution_table.
At which step does the list c get its value?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look at the 'Result c (a+b)' column in the execution_table to see when c is assigned.
If we change 'a' to [5], what will be the output of r after step 4?
A[5, 5, 5]
B[1, 2, 1, 2, 1, 2]
C[5]
D[5, 5]
💡 Hint
Repeating a list multiplies its elements; see variable_tracker for 'a' and 'r' relation.
Concept Snapshot
List concatenation: use '+' to join lists end-to-end.
List repetition: use '*' to repeat list elements multiple times.
Both create new lists without changing originals.
Example: [1,2] + [3,4] = [1,2,3,4]; [1,2] * 3 = [1,2,1,2,1,2].
Full Transcript
This lesson shows how to join two lists using '+' and how to repeat a list multiple times using '*'. We start with two lists a and b. Using a + b creates a new list with elements of a followed by elements of b. Using a * 3 repeats the list a three times in a new list. The original lists a and b do not change. The output prints the concatenated list and the repeated list. This helps understand how list operations create new lists without modifying the originals.

Practice

(1/5)
1. What does the expression [1, 2] + [3, 4] do in Python?
easy
A. Creates a new list combining both lists: [1, 2, 3, 4]
B. Repeats the first list twice: [1, 2, 1, 2]
C. Creates a list of two lists: [[1, 2], [3, 4]]
D. Raises a TypeError because lists cannot be added

Solution

  1. Step 1: Understand the + operator with lists

    The + operator joins two lists into one new list containing all elements from both.
  2. Step 2: Apply + to [1, 2] and [3, 4]

    Joining these lists results in [1, 2, 3, 4].
  3. Final Answer:

    Creates a new list combining both lists: [1, 2, 3, 4] -> Option A
  4. Quick Check:

    List concatenation = combined list [OK]
Hint: Use + to join lists, not to repeat [OK]
Common Mistakes:
  • Thinking + repeats lists instead of joining
  • Confusing list concatenation with nesting
  • Expecting an error when adding lists
2. Which of the following is the correct syntax to repeat the list [5, 6] three times?
easy
A. [5, 6] ** 3
B. [5, 6] + 3
C. 3 + [5, 6]
D. [5, 6] * 3

Solution

  1. Step 1: Identify the operator for repetition

    The * operator repeats a list multiple times when used with an integer.
  2. Step 2: Check syntax correctness

    [5, 6] * 3 repeats the list three times: [5, 6, 5, 6, 5, 6].
  3. Final Answer:

    [5, 6] * 3 -> Option D
  4. Quick Check:

    List repetition uses * operator [OK]
Hint: Use * with list and number to repeat [OK]
Common Mistakes:
  • Using + instead of * for repetition
  • Trying to use ** which is invalid for lists
  • Confusing order of operands for repetition
3. What is the output of this code?
lst1 = [1]
lst2 = [2, 3]
result = lst1 * 2 + lst2 * 3
print(result)
medium
A. [1, 1, 2, 3, 2, 3, 2, 3]
B. [1, 2, 3, 1, 2, 3]
C. [1, 1, 2, 3, 3, 3]
D. [1, 1, 2, 3, 2, 3]

Solution

  1. Step 1: Calculate lst1 * 2

    Repeating [1] twice gives [1, 1].
  2. Step 2: Calculate lst2 * 3

    Repeating [2, 3] three times gives [2, 3, 2, 3, 2, 3].
  3. Step 3: Concatenate the two results

    Adding [1, 1] + [2, 3, 2, 3, 2, 3] results in [1, 1, 2, 3, 2, 3, 2, 3].
  4. Final Answer:

    [1, 1, 2, 3, 2, 3, 2, 3] -> Option A
  5. Quick Check:

    Repeat then join lists = combined repeated list [OK]
Hint: Repeat lists first, then add them [OK]
Common Mistakes:
  • Adding before repeating
  • Miscounting repeated elements
  • Confusing order of concatenation
4. Find the error in this code snippet:
list_a = [1, 2]
list_b = [3, 4]
result = list_a * list_b
print(result)
medium
A. No error, prints [1, 2, 3, 4]
B. SyntaxError due to missing parentheses
C. TypeError because * expects an integer, not a list
D. ValueError because lists cannot be multiplied

Solution

  1. Step 1: Understand list repetition rules

    List repetition uses * with an integer, not another list.
  2. Step 2: Identify the error in list_a * list_b

    Multiplying two lists causes a TypeError because the right operand must be int.
  3. Final Answer:

    TypeError because * expects an integer, not a list -> Option C
  4. Quick Check:

    List * list is invalid, needs int [OK]
Hint: Right side of * must be integer for list repetition [OK]
Common Mistakes:
  • Trying to multiply two lists directly
  • Expecting concatenation with * operator
  • Confusing syntax error with type error
5. You have two lists:
fruits = ['apple', 'banana']
veggies = ['carrot']
How do you create a new list that repeats the fruits twice and veggies three times, then combines them all in order?
hard
A. fruits * veggies * 5
B. fruits * 2 + veggies * 3
C. fruits + veggies * 5
D. (fruits + veggies) * 5

Solution

  1. Step 1: Repeat fruits and veggies separately

    fruits * 2 repeats fruits twice; veggies * 3 repeats veggies three times.
  2. Step 2: Concatenate the repeated lists

    Adding these repeated lists combines them in order as desired.
  3. Final Answer:

    fruits * 2 + veggies * 3 -> Option B
  4. Quick Check:

    Repeat separately then add lists [OK]
Hint: Repeat lists separately, then add [OK]
Common Mistakes:
  • Repeating combined list instead of separate lists
  • Using invalid multiplication of lists
  • Confusing order of operations