Hướng dẫn how to change an element in a 2d array python - cách thay đổi một phần tử trong python mảng 2d

Tôi sẽ đâm vào cái này mặc dù hành vi bạn mô tả (như bạn đã mô tả) là không thể.

Nếu bạn tạo một danh sách, bạn cần đảm bảo rằng mỗi người phụ là một danh sách khác nhau. Xem xét:

a = []
b = [a, a]

Ở đây tôi đã tạo một danh sách trong đó cả hai người phụ là cùng một danh sách. Nếu tôi thay đổi một, nó sẽ hiển thị trong cả hai. ví dụ.:

>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]

Bạn sẽ thường xuyên thấy hành vi này với danh sách được khởi tạo bằng toán tử

>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
1:

a = [[None]*7]*7

e.g.

>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]

Bản sửa lỗi là không sử dụng

>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
1 7 trên danh sách bên ngoài (danh sách bên trong là OK vì
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
3 là bất biến):

a = [[None]*7 for _ in range(7)]

e.g.:

>>> a = [[None]*7 for _ in range(7)]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]

Trong Python, cũng có thể thay đổi nhiều yếu tố trong một mảng cùng một lúc. Để làm điều này, bạn sẽ cần sử dụng toán tử lát cắt và gán các giá trị thái lát một mảng mới để thay thế chúng.

Làm thế nào để bạn truy cập các yếu tố của danh sách 2D trong Python?

Sử dụng lập chỉ mục danh sách để truy cập các yếu tố trong danh sách 2D. Sử dụng cú pháp lập chỉ mục danh sách A_2D_List [x] [y] để truy cập một phần tử tại chỉ mục y trong danh sách lồng nhau tại Index X.

Python cung cấp nhiều cách để tạo danh sách/mảng 2 chiều. Tuy nhiên, người ta phải biết sự khác biệt giữa những cách này bởi vì chúng có thể tạo ra các biến chứng trong mã có thể rất khó để tìm ra. Hãy bắt đầu bằng cách xem xét các cách phổ biến để tạo mảng 1D có kích thước n được khởi tạo bằng 0. Creating 1d list Using Naive methods

Python3

Sử dụng mảng 2D/danh sách đúng cáchcreating 1d list using  List Comprehension

Python3

Phương pháp 1: Tạo danh sách 1-D

Ví dụ 1: Tạo danh sách 1D bằng các phương thức ngây thơ

a = [[None]*7]*7
6
a = [[None]*7]*7
7

Explanation:

Ví dụ 2: Tạo danh sách 1D bằng cách sử dụng & nbsp; danh sách hiểu biết

>>> a = [] >>> b = [a, a] >>> b[0].append(1) >>> b [[1], [1]] 4>>> a = [] >>> b = [a, a] >>> b[0].append(1) >>> b [[1], [1]] 5 >>> a = [] >>> b = [a, a] >>> b[0].append(1) >>> b [[1], [1]] 6

>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
7
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
9
a = [[None]*7]*7
0
a = [[None]*7]*7
1
a = [[None]*7]*7
22
a = [[None]*7]*7
3

Python3

a = [[None]*7]*7
8
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
0
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
2
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
4

Phương pháp này tạo 5 đối tượng danh sách riêng biệt không giống như Phương pháp 2A. Một cách để kiểm tra điều này là sử dụng toán tử ‘IS là kiểm tra xem hai toán hạng có đề cập đến cùng một đối tượng không. & NBSP;

a = [[None]*7]*7
6
a = [[None]*7]*7
7

Đầu ra

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

Explanation: 

Phương pháp này tạo 5 đối tượng danh sách riêng biệt không giống như Phương pháp 2A. Một cách để kiểm tra điều này là sử dụng toán tử ‘IS là kiểm tra xem hai toán hạng có đề cập đến cùng một đối tượng không. & NBSP;

>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
7
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
7
a = [[None]*7]*7
0
a = [[None]*7]*7
1
a = [[None]*7]*7
2
a = [[None]*7]*7
3

Python3

a = [[None]*7]*7
8
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
0
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
2
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
4

a = [[None]*7]*7
6
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
66
a = [[None]*7]*7
0
a = [[None]*7]*7
1
a = [[None]*7]*7
2
a = [[None]*7]*7
3

Đầu ra

Đầu ra

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

Explanation:

Phương pháp này tạo 5 đối tượng danh sách riêng biệt không giống như Phương pháp 2A. Một cách để kiểm tra điều này là sử dụng toán tử ‘IS là kiểm tra xem hai toán hạng có đề cập đến cùng một đối tượng không. & NBSP;

>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
7
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
7
a = [[None]*7]*7
0
a = [[None]*7]*7
1
a = [[None]*7]*7
2
a = [[None]*7]*7
3

Python3

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
9
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
1

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
2
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
5
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6

a = [[None]*7]*7
6
a = [[None]*7]*7
00
a = [[None]*7]*7
0
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
20
a = [[None]*7]*7
03
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
16__12222

>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
7
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
7
a = [[None]*7]*7
0
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
9
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
1____41
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
1
a = [[None]*7 for _ in range(7)]
3

Các

[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
2
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
3
a = [[None]*7]*7
0
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
4

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
2
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
7

a = [[None]*7]*7
6
a = [[None]*7]*7
7

Đầu ra

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

Explanation:

Làm cách nào để thay đổi giá trị của một mảng 2D trong Python?

Python3

a = [[None]*7]*7
8
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
0
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
2
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
4

Phương pháp này tạo 5 đối tượng danh sách riêng biệt không giống như Phương pháp 2A. Một cách để kiểm tra điều này là sử dụng toán tử ‘IS là kiểm tra xem hai toán hạng có đề cập đến cùng một đối tượng không. & NBSP;

>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
7
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
7
a = [[None]*7]*7
0
a = [[None]*7]*7
1
a = [[None]*7]*7
2
a = [[None]*7]*7
3

a = [[None]*7]*7
1
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
24
a = [[None]*7]*7
3
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
26

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
2
a = [[None]*7]*7
6
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
29

>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
7
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
7
a = [[None]*7]*7
0
a = [[None]*7]*7
1
a = [[None]*7]*7
2
a = [[None]*7]*7
3

>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
16________L

a = [[None]*7]*7
1
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
24
a = [[None]*7]*7
3
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
26

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
2
a = [[None]*7]*7
6
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
29

Đầu ra

[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]

Explanation:

Chúng tôi chỉ hy vọng phần tử đầu tiên của hàng đầu tiên sẽ thay đổi thành 1 nhưng phần tử đầu tiên của mỗi hàng được thay đổi thành 1 trong Phương pháp 2A. Chức năng đặc biệt này là do Python sử dụng các danh sách nông mà chúng ta sẽ cố gắng hiểu. Trong phương pháp 1a, Python không tạo 5 đối tượng số nguyên nhưng chỉ tạo một đối tượng số nguyên và tất cả các chỉ số của mảng arr chỉ vào cùng một đối tượng INT như được hiển thị .
In method 1a, Python doesn’t create 5 integer objects but creates only one integer object and all the indices of the array arr point to the same int object as shown.

Hướng dẫn how to change an element in a 2d array python - cách thay đổi một phần tử trong python mảng 2d

Nếu chúng ta gán chỉ mục 0 cho một số nguyên khác nói 1, thì một đối tượng số nguyên mới được tạo với giá trị là 1 và sau đó chỉ số 0 bây giờ chỉ vào đối tượng INT mới này như được hiển thị bên dưới bên dưới

Hướng dẫn how to change an element in a 2d array python - cách thay đổi một phần tử trong python mảng 2d

Tương tự, khi chúng ta tạo một mảng 2D dưới dạng ARR ARR = [[0]*cols]*Hàng, chúng ta về cơ bản là mở rộng tương tự ở trên. & NBSP;

  1. Chỉ có một đối tượng số nguyên được tạo. & Nbsp;
  2. Một danh sách 1D duy nhất được tạo và tất cả các chỉ số của nó chỉ vào cùng một đối tượng INT trong điểm 1. & nbsp;
  3. Bây giờ, ARR [0], ARR [1], ARR [2]. ARR [N-1] Tất cả chỉ vào cùng một đối tượng danh sách ở trên trong điểm 2.

Các thiết lập trên có thể được hiển thị trong hình ảnh dưới đây.

Hướng dẫn how to change an element in a 2d array python - cách thay đổi một phần tử trong python mảng 2d

Bây giờ chúng ta hãy thay đổi phần tử đầu tiên trong hàng đầu tiên của ARR AR AS AS & NBSP; ARR [0] [0] = 1

  • ARR [0] trỏ đến đối tượng danh sách duy nhất mà chúng tôi đã tạo ở trên.
  • Việc gán ARR [0] [0] sẽ tạo một đối tượng INT mới với giá trị 1 và ARR [0] [0] bây giờ sẽ trỏ đến đối tượng INT mới này. [2] [0], ARR ARR [N-1] [0])

Điều này có thể thấy rõ trong hình ảnh dưới đây. & NBSP;

Hướng dẫn how to change an element in a 2d array python - cách thay đổi một phần tử trong python mảng 2d

Vì vậy, khi các mảng 2D được tạo như thế này, việc thay đổi các giá trị ở một hàng nhất định sẽ ảnh hưởng đến tất cả các hàng vì về cơ bản chỉ có một đối tượng số nguyên và chỉ một đối tượng danh sách được tham chiếu bởi tất cả các hàng của mảng.

Như bạn mong đợi, việc truy tìm các lỗi gây ra bởi việc sử dụng danh sách nông như vậy là khó khăn. Do đó, cách tốt hơn để khai báo một mảng 2D là & nbsp;

Python3

a = [[None]*7]*7
8
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
0
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
2
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
4

a = [[None]*7]*7
6
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
66
a = [[None]*7]*7
0
a = [[None]*7]*7
1
a = [[None]*7]*7
2
a = [[None]*7]*7
3

Đầu ra

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

Chúng tôi chỉ hy vọng phần tử đầu tiên của hàng đầu tiên sẽ thay đổi thành 1 nhưng phần tử đầu tiên của mỗi hàng được thay đổi thành 1 trong Phương pháp 2A. Chức năng đặc biệt này là do Python sử dụng các danh sách nông mà chúng ta sẽ cố gắng hiểu. Trong phương pháp 1a, Python không tạo 5 đối tượng số nguyên nhưng chỉ tạo một đối tượng số nguyên và tất cả các chỉ số của mảng arr chỉ vào cùng một đối tượng INT như được hiển thị .

Python3

a = [[None]*7]*7
8
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
0
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
2
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
6
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
4

>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
7
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
5
>>> a = [[None]*7]*7
>>> a
[[None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None], [None, None, None, None, None, None, None]]
>>> a[0][1] = 3
>>> a
[[None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None], [None, 3, None, None, None, None, None]]
7
a = [[None]*7]*7
0
a = [[None]*7]*7
1
a = [[None]*7]*7
2
a = [[None]*7]*7
3

a = [[None]*7]*7
6
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
66
a = [[None]*7]*7
0
a = [[None]*7]*7
1
a = [[None]*7]*7
2
a = [[None]*7]*7
3

Phương pháp này tạo 5 đối tượng danh sách riêng biệt không giống như Phương pháp 2A. Một cách để kiểm tra điều này là sử dụng toán tử ‘IS là kiểm tra xem hai toán hạng có đề cập đến cùng một đối tượng không. & NBSP;

a = [[None]*7]*7
6
a = [[None]*7]*7
00
a = [[None]*7]*7
0
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
20
a = [[None]*7]*7
03
>>> a = []
>>> b = [a, a]
>>> b[0].append(1)
>>> b
[[1], [1]]
16__12222


Làm cách nào để thay đổi giá trị của một mảng 2D trong Python?

Cập nhật các yếu tố trong mảng 2 -D (hai chiều) tạo ra một chương trình để cập nhật giá trị hiện có của mảng 2D trong Python.Từ Nhập mảng * # Nhập tất cả gói liên quan đến mảng.ARR1 = [[1, 2, 3, 4], [8, 9, 10, 12]] # Khởi tạo các phần tử mảng.In (ARR1) # In các phần tử ARR1.Create a program to update the existing value of a 2D array in Python. from array import * # import all package related to the array. arr1 = [[1, 2, 3, 4], [8, 9, 10, 12]] # initialize the array elements. print(arr1) # print the arr1 elements.

Làm thế nào để bạn trao đổi các phần tử trong một mảng 2D?

Tôi viết phương thức này để hoán đổi hai phần tử trong một mảng 2D: hoán đổi void public void (object [] [] [] mảng, int a, int b) {object temp;temp = mảng [a];mảng [a] = mảng [b];mảng [b] = temp;// lỗi, tại sao?}public void swap(Object[][] array, int a, int b) { Object temp; temp = array[a]; array[a] = array[b]; array[b] = temp; // Error, Why? }

Làm thế nào để bạn thay đổi một phần tử trong một mảng python?

Trong Python, cũng có thể thay đổi nhiều yếu tố trong một mảng cùng một lúc.Để làm điều này, bạn sẽ cần sử dụng toán tử lát cắt và gán các giá trị thái lát một mảng mới để thay thế chúng.make use of the slice operator and assign the sliced values a new array to replace them.

Làm thế nào để bạn truy cập các yếu tố của danh sách 2D trong Python?

Sử dụng lập chỉ mục danh sách để truy cập các yếu tố trong danh sách 2D.Sử dụng cú pháp lập chỉ mục danh sách A_2D_List [x] [y] để truy cập một phần tử tại chỉ mục y trong danh sách lồng nhau tại Index X.