Bird
Raised Fist0
DSA Pythonprogramming

Array Declaration and Initialization in DSA Python

Choose your learning style10 modes available
Mental Model
An array is a row of boxes where each box holds one item, and we know exactly how many boxes there are from the start.
Analogy: Imagine a row of mailboxes, each labeled with a number. You can put one letter in each mailbox and find it easily by its number.
Index: 0   1   2   3   4
Array: [ ] [ ] [ ] [ ] [ ]
Dry Run Walkthrough
Input: Declare an array of size 5 and initialize it with values 10, 20, 30, 40, 50
Goal: Create an array with 5 boxes and put the given values in order
Step 1: Declare an array of size 5 with empty boxes
Index: 0   1   2   3   4
Array: [ ] [ ] [ ] [ ] [ ]
Why: We need to reserve space for 5 items before putting values
Step 2: Put 10 in box at index 0
Index: 0   1   2   3   4
Array: [10] [ ] [ ] [ ] [ ]
Why: Start filling the array from the first box
Step 3: Put 20 in box at index 1
Index: 0   1   2   3   4
Array: [10] [20] [ ] [ ] [ ]
Why: Continue filling the next box in order
Step 4: Put 30 in box at index 2
Index: 0   1   2   3   4
Array: [10] [20] [30] [ ] [ ]
Why: Fill the third box with the next value
Step 5: Put 40 in box at index 3
Index: 0   1   2   3   4
Array: [10] [20] [30] [40] [ ]
Why: Fill the fourth box with the next value
Step 6: Put 50 in box at index 4
Index: 0   1   2   3   4
Array: [10] [20] [30] [40] [50]
Why: Fill the last box with the last value
Result:
Index: 0   1   2   3   4
Array: [10] [20] [30] [40] [50]
Annotated Code
DSA Python
class Array:
    def __init__(self, size):
        self.size = size
        self.data = [None] * size  # create empty boxes

    def initialize(self, values):
        for i in range(min(self.size, len(values))):
            self.data[i] = values[i]  # put value in box at index i

    def __str__(self):
        return ' -> '.join(str(x) for x in self.data) + ' -> null'

# Driver code
arr = Array(5)  # declare array of size 5
arr.initialize([10, 20, 30, 40, 50])  # initialize with values
print(arr)
self.data = [None] * size # create empty boxes
reserve space for all boxes in the array
for i in range(min(self.size, len(values))):
loop through each index up to array size or values length
self.data[i] = values[i] # put value in box at index i
fill each box with the corresponding value
OutputSuccess
10 -> 20 -> 30 -> 40 -> 50 -> null
Complexity Analysis
Time: O(n) because we fill each of the n boxes once
Space: O(n) because we store n items in the array
vs Alternative: Compared to dynamic structures like linked lists, arrays use fixed space and allow fast access by index but need size known upfront
Edge Cases
Initialize with fewer values than size
Remaining boxes stay empty (None)
DSA Python
for i in range(min(self.size, len(values))):
Initialize with more values than size
Only first 'size' values are stored, extra values ignored
DSA Python
for i in range(min(self.size, len(values))):
Declare array of size zero
Creates empty array with no boxes
DSA Python
self.data = [None] * size
When to Use This Pattern
When you need to store multiple items in order and access them by position quickly, think of arrays because they give direct access by index.
Common Mistakes
Mistake: Trying to add more items than the declared size without resizing
Fix: Only fill up to the declared size or use a dynamic structure if size can change
Mistake: Not initializing the array before use, leading to errors
Fix: Always declare and initialize the array before accessing its elements
Summary
An array is a fixed-size collection of items stored in order.
Use arrays when you know the number of items in advance and want fast access by position.
The key is to reserve space first, then fill each box with the value you want.

Practice

(1/5)
1. Which of the following is the correct way to declare and initialize an array of integers with values 1, 2, and 3 in Python?
easy
A. arr = (1, 2, 3)
B. arr = [1, 2, 3]
C. arr = {1, 2, 3}
D. arr = int[3]

Solution

  1. Step 1: Understand Python array syntax and check each option

    In Python, arrays are usually represented by lists, which use square brackets []. arr = [1, 2, 3] uses square brackets with values 1, 2, 3 which is correct. arr = (1, 2, 3) uses parentheses which create a tuple, not an array. arr = {1, 2, 3} uses curly braces which create a set, not an array. arr = int[3] is invalid syntax in Python.
  2. Final Answer:

    arr = [1, 2, 3] -> Option B
  3. Quick Check:

    List syntax = [1, 2, 3] [OK]
Hint: Use square brackets [] for arrays (lists) in Python [OK]
Common Mistakes:
  • Using parentheses () instead of square brackets
  • Using curly braces {} which create sets
  • Trying to declare array size like int[3]
2. Which of the following is the correct syntax to create an empty list in Python?
easy
A. list = ()
B. list = {}
C. list = []
D. list = empty()

Solution

  1. Step 1: Identify empty list syntax and evaluate options

    In Python, an empty list is created using empty square brackets []. list = [] uses [], which is correct. list = () uses parentheses which create an empty tuple. list = {} uses curly braces which create an empty dictionary. list = empty() is invalid syntax.
  2. Final Answer:

    list = [] -> Option C
  3. Quick Check:

    Empty list = [] [OK]
Hint: Empty list always uses [] brackets [OK]
Common Mistakes:
  • Using () which creates a tuple
  • Using {} which creates a dictionary
  • Trying to call empty() function which doesn't exist
3. What will be the output of the following code?
arr = [0] * 4
print(arr)
medium
A. Error
B. [0, 1, 2, 3]
C. [4, 4, 4, 4]
D. [0, 0, 0, 0]

Solution

  1. Step 1: Understand list multiplication and predict the output

    Multiplying a list by an integer repeats the list elements that many times. Here, [0] * 4 creates a list with four zeros. The print statement outputs the list: [0, 0, 0, 0].
  2. Final Answer:

    [0, 0, 0, 0] -> Option D
  3. Quick Check:

    [0] * 4 = [0, 0, 0, 0] [OK]
Hint: List * n repeats elements n times [OK]
Common Mistakes:
  • Expecting a range of numbers instead of repeated zeros
  • Confusing list multiplication with addition
  • Thinking it causes an error
4. Find the error in the following code snippet:
arr = [1, 2, 3]
arr[3] = 4
print(arr)
medium
A. IndexError: list assignment index out of range
B. SyntaxError
C. [1, 2, 3, 4]
D. [4, 2, 3]

Solution

  1. Step 1: Check list indices and analyze assignment at index 3

    List indices start at 0. For a list of length 3, valid indices are 0, 1, 2. Trying to assign arr[3] = 4 is invalid because index 3 does not exist yet, causing an IndexError.
  2. Final Answer:

    IndexError: list assignment index out of range -> Option A
  3. Quick Check:

    Index 3 invalid for length 3 list [OK]
Hint: List indices go from 0 to length-1 [OK]
Common Mistakes:
  • Trying to assign to an index outside the list
  • Confusing append with direct index assignment
  • Expecting automatic list resizing
5. You want to create a 2D array (list of lists) with 3 rows and 4 columns, all initialized to zero. Which code correctly does this without causing unexpected behavior?
hard
A.
arr = [[0 for _ in range(4)] for _ in range(3)]
print(arr)
B.
arr = [[0]*4]*3
print(arr)
C.
arr = [0]*3
for i in range(4):
    arr[i] = [0]*4
print(arr)
D.
arr = [[0]*3 for _ in range(4)]
print(arr)

Solution

  1. Step 1: Understand 2D array creation pitfalls and analyze each option

    Using [[0]*4]*3 creates 3 references to the same inner list, causing changes in one row to affect others.
    arr = [[0]*4]*3
    print(arr)
    creates shared inner lists (bad).
    arr = [[0 for _ in range(4)] for _ in range(3)]
    print(arr)
    uses nested list comprehension creating independent inner lists (correct).
    arr = [0]*3
    for i in range(4):
        arr[i] = [0]*4
    print(arr)
    has index errors and wrong loop ranges.
    arr = [[0]*3 for _ in range(4)]
    print(arr)
    creates 4 rows and 3 columns, which is reversed.
  2. Final Answer:

    arr = [[0 for _ in range(4)] for _ in range(3)] -> Option A
  3. Quick Check:

    Nested list comprehension avoids shared references [OK]
Hint: Use nested list comprehension for independent inner lists [OK]
Common Mistakes:
  • Using multiplication for nested lists causing shared references
  • Mixing up rows and columns sizes
  • Index errors in loops when initializing
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard