Two Dimensional Array in Python - Stack Over Ow
Two Dimensional Array in Python - Stack Over Ow
Stack Overow is a question and answer site for professional and enthusiast programmers. It's 100% free. Take the 2-minute tour
arr = [[]]
arr[0].append("aa1")
arr[0].append("aa2")
arr[1].append("bb1")
arr[1].append("bb2")
arr[1].append("bb3")
The rst two assignments work ne. But when I try to do, arr[1].append("bb1"), I get the
following error,
[edit]: but i do not know the no. of elements in the array (both rows and columns).
python multidimensional-array
8 Answers
You do not "declare" arrays or anything else in python. You simply assign to a (new) variable. If
you want a multidimensional array, simply add a new array as an arary element.
arr = []
arr.append([])
arr[0].append('aa1')
arr[0].append('aa2')
or
arr = []
arr.append(['aa1', 'aa2'])
There aren't multidimensional arrays as such in Python, what you have is a list containing other
lists.
What you have done is declare a list containing a single list. So arr[0] contains a list but
arr[1] is not dened.
arr = [[],[]]
arr = [[]] * 3
As this puts the same list in all three places in the container list:
>>> arr[0].append('test')
>>> arr
[['test'], ['test'], ['test']]
What does the underscore in the list comprehension do? Kris Harper Nov 18 '11 at 13:55
1 @root45 We need a variable in the list comprehension so we could put arr = [[] for i in range(5)]
but there is a convention to name a variable you're never going to use as _ . Although in the interactive
Python REPL the _ variable stores the result of the last expression. Dave Webb Nov 18 '11 at 13:59
What you're using here are not arrays, but lists (of lists).
If you want multidimensional arrays in Python, you can use Numpy arrays. You'd need to know
the shape in advance.
For example:
import numpy as np
arr = np.empty((3, 2), dtype=object)
arr[0, 1] = 'abc'
arr = [
["aa1", "aa2"],
["bb1", "bb2", "bb3"]
]
You try to append to second element in array, but it does not exist. Create it.
arr = [[]]
arr[0].append("aa1")
arr[0].append("aa2")
arr.append([])
arr[1].append("bb1")
arr[1].append("bb2")
arr[1].append("bb3")
i.e.
arr = []
arr.append([])
arr[-1].append("aa1")
arr[-1].append("aa2")
arr.append([])
arr[-1].append("bb1")
arr[-1].append("bb2")
arr[-1].append("bb3")
Create an array of list with initial values lled with 0 or anything using the following
code
for i in range(x):
for j in range(y):
z[i][j]=input()
for i in range(x):
for j in range(y):
print(z[i][j],end=' ')
print("\n")
for row in z:
print(row)