Hướng dẫn python nested for loops 2d array - python lồng nhau cho các vòng lặp mảng 2d

Tôi chưa quen với Python và đã cố gắng đọc trong một tập dữ liệu từ tệp Excel và lưu trữ nó trong mảng/danh sách.

Tôi đang sử dụng "openpyxl" để xử lý tài liệu Excel để có một số cú pháp không chuẩn, tuy nhiên, tất cả những điều đó dường như đang hoạt động và tôi tin rằng vấn đề này nằm ở bit hai chiều.

Đó có lẽ là một sai lầm của tân binh rất cơ bản, nhưng vì tôi đã quen làm việc trong C ++, tôi gặp rất nhiều khó khăn trong việc tìm ra nó!

[Tôi đã bao gồm các câu lệnh in cho rõ ràng và vì đó là cách tôi đã cố gắng khắc phục sự cố]

%matplotlib inline  
    ​  
import numpy as np  
import matplotlib.pyplot as plt  
import math as mth  
import scipy as science  
from array import array  
​  
from openpyxl import load_workbook  
wb2 = load_workbook[r'C:"path and file name"']  
ws1 = wb2.active  
​  
timeArray = [None]*630  
voltageArray = [[None]*25,[None]*630]  
i=0  
j=0  
​  
​
for i in range [0, 625]:  
    j=0  
    timeArray[i] = ws1.cell[row = i+1, column = 4].value  
    for j in range [0, 15]:  
        voltageArray[j][i] =[ws1.cell[row = i+1, column = j+5].value]  
        print[j, i]  
        print[voltageArray[j][i]]

Mà in ra chính xác; 0 0 -30 1 0 -29 là các số chính xác, cho đến nay, nhưng tại thời điểm này, nó không thành công và đưa ra lỗi sau;
0 0
-30
1 0
-29
Which are the correct numbers, so far, but at this point it fails and gives the following error;

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range

Không có gì trong bảng tính sẽ gây ra điều này vì ô tiếp theo vừa được lấp đầy và ở định dạng chính xác như hai trước đó.

Tôi cho rằng có điều gì đó không ổn với cách tôi đã thiết lập hoặc đang sử dụng mảng 2 chiều "voltagearray"

Tôi đã thử một số bản sửa lỗi đã từ câu trả lời cho các câu hỏi tương tự nhưng không thể có bất kỳ câu hỏi nào trong số họ hoạt động.

Mọi sự trợ giúp sẽ rất được trân trọng!


  • Thuật toán này chậm: Nó sử dụng hai vòng và cho mỗi cặp
    a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
    s = 0
    for row in a:
        for elem in row:
            s += elem
    print[s]
    
    8 thực thi một hoặc hai hướng dẫn
    a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
    s = 0
    for row in a:
        for elem in row:
            s += elem
    print[s]
    
    9. Nếu chúng ta làm phức tạp thuật toán, chúng ta sẽ có thể làm điều đó mà không cần một tuyên bố có điều kiện.
  • Đầu tiên, hãy điền vào đường chéo chính mà chúng ta sẽ cần một vòng lặp:
  • Sau đó điền vào số 0 tất cả các phần tử phía trên đường chéo chính. Để thực hiện điều này, với mỗi hàng với số
    a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
    for row in a:
        for elem in row:
            print[elem, end=' ']
        print[]
    
    0, bạn cần gán giá trị cho
    a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
    s = 0
    for i in range[len[a]]:
        for j in range[len[a[i]]]:
            s += a[i][j]
    print[s]
    
    7 cho ________ 41 = ________ 83, ...,
    a = [[0] * m] * n
    
    4. Để làm điều đó, bạn cần các vòng lặp lồng nhau:

Bằng cách tương tự, với ________ 41 = ________ 86, ...,
a = [[0] * m] * n
7 Đặt các phần tử
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
s = 0
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        s += a[i][j]
print[s]
7 bằng
a = [[0] * m] * n
9:

Bạn có thể kết hợp tất cả mã này và nhận một giải pháp khác:

a = [[1, 2, 3], [4, 5, 6]]
print[a[0]]
print[a[1]]
b = a[0]
print[b]
print[a[0][2]]
a[0][1] = 7
print[a]
print[b]
b[2] = 9
print[a[0]]
print[b]

Yếu tố đầu tiên của

a = [[1, 2, 3], [4, 5, 6]]
print[a[0]]
print[a[1]]
b = a[0]
print[b]
print[a[0][2]]
a[0][1] = 7
print[a]
print[b]
b[2] = 9
print[a[0]]
print[b]
8 ở đây -
a = [[1, 2, 3], [4, 5, 6]]
print[a[0]]
print[a[1]]
b = a[0]
print[b]
print[a[0][2]]
a[0][1] = 7
print[a]
print[b]
b[2] = 9
print[a[0]]
print[b]
9 - là danh sách các số
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        print[a[i][j], end=' ']
    print[]
0. Yếu tố đầu tiên của danh sách mới này là
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        print[a[i][j], end=' ']
    print[]
1; Hơn nữa,
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        print[a[i][j], end=' ']
    print[]
2,
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        print[a[i][j], end=' ']
    print[]
3,
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        print[a[i][j], end=' ']
    print[]
4,
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        print[a[i][j], end=' ']
    print[]
5,
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        print[a[i][j], end=' ']
    print[]
6.

Để xử lý mảng 2 chiều, bạn thường sử dụng các vòng lặp lồng nhau. Vòng lặp đầu tiên lặp qua số hàng, vòng thứ hai chạy qua các phần tử bên trong một hàng. Ví dụ: đó là cách bạn hiển thị danh sách số hai chiều trên dòng màn hình từng dòng, phân tách các số với khoảng trắng:

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        print[a[i][j], end=' ']
    print[]

Chúng tôi đã cố gắng giải thích rằng một biến số vòng trong Python có thể lặp lại không chỉ trên

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        print[a[i][j], end=' ']
    print[]
7, mà nói chung là trên tất cả các yếu tố của bất kỳ chuỗi nào. Trình tự trong Python là danh sách và chuỗi [và một số đối tượng khác mà chúng ta chưa gặp]. Hãy xem cách bạn có thể in một mảng hai chiều, sử dụng tính năng tiện dụng này của Loop
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        print[a[i][j], end=' ']
    print[]
8:

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]

Đương nhiên, để xuất ra một dòng bạn có thể sử dụng phương thức

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        print[a[i][j], end=' ']
    print[]
9:

for row in a:
    print[' '.join[[str[elem] for elem in row]]]

Đây là cách bạn có thể sử dụng 2 vòng lồng nhau để tính tổng của tất cả các số trong danh sách 2 chiều:

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
s = 0
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        s += a[i][j]
print[s]

Hoặc giống nhau với việc lặp lại bởi các phần tử, không phải bởi các biến

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
0 và
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
1:

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
s = 0
for row in a:
    for elem in row:
        s += elem
print[s]

Quảng cáo của Google, có thể dựa trên sở thích của bạn

2. Danh sách lồng nhau: Tạo

Giả sử rằng hai số được đưa ra: số lượng hàng của

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2 và số lượng cột
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
3. Bạn phải tạo một danh sách kích thước ____ ____ 42 × ________ 43, chứa đầy, nói, số không.

Giải pháp rõ ràng dường như là sai:

a = [[0] * m] * n

Điều này có thể dễ dàng nhìn thấy nếu bạn đặt giá trị của

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
6 thành
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
7, sau đó in giá trị của ____ 48 & nbsp; - nó cũng sẽ bằng 5. Lý do là,
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
9 trả về chỉ một tham chiếu đến danh sách
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
3 một danh sách. Việc lặp lại tiếp theo của phần tử này tạo ra một danh sách các mục
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2 mà tất cả tham chiếu đến cùng một danh sách [cũng như hoạt động
for row in a:
    print[' '.join[[str[elem] for elem in row]]]
2 cho danh sách không tạo danh sách mới], vì vậy tất cả các hàng trong danh sách kết quả thực sự là cùng một chuỗi.

Sử dụng trình hiển thị của chúng tôi, hãy theo dõi ID của danh sách. Nếu hai danh sách có cùng một số ID, thì thực tế thì cùng một danh sách trong bộ nhớ.

n = 3
m = 4
a = [[0] * m] * n
a[0][0] = 5
print[a[1][0]]

Do đó, một danh sách hai chiều không thể được tạo đơn giản bằng cách lặp lại một chuỗi. Làm gì? ..

Một cách có thể: bạn có thể tạo một danh sách các phần tử

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2 [giả sử,
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2 không

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
0

Một cách khác [nhưng tương tự]: Tạo một danh sách trống và sau đó

for row in a:
    print[' '.join[[str[elem] for elem in row]]]
6 một yếu tố mới cho nó
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2 lần [phần tử này phải là danh sách độ dài
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
3]:

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
1

Nhưng cách dễ nhất là sử dụng Trình tạo, tạo danh sách các yếu tố

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2, mỗi phần tử là danh sách các số không
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
3:

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
2

Trong trường hợp này, mỗi yếu tố được tạo độc lập với các yếu tố khác. Danh sách

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
9 là
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2 lần được cung cấp là cái mới và không có sao chép tài liệu tham khảo nào xảy ra.

Quảng cáo của Google, có thể dựa trên sở thích của bạn

2. Danh sách lồng nhau: Tạo

Giả sử rằng hai số được đưa ra: số lượng hàng của

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2 và số lượng cột
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
3. Bạn phải tạo một danh sách kích thước ____ ____ 42 × ________ 43, chứa đầy, nói, số không.

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
3

Giải pháp rõ ràng dường như là sai:

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
4

Điều này có thể dễ dàng nhìn thấy nếu bạn đặt giá trị của

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
6 thành
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
7, sau đó in giá trị của ____ 48 & nbsp; - nó cũng sẽ bằng 5. Lý do là,
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
9 trả về chỉ một tham chiếu đến danh sách
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
3 một danh sách. Việc lặp lại tiếp theo của phần tử này tạo ra một danh sách các mục
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2 mà tất cả tham chiếu đến cùng một danh sách [cũng như hoạt động
for row in a:
    print[' '.join[[str[elem] for elem in row]]]
2 cho danh sách không tạo danh sách mới], vì vậy tất cả các hàng trong danh sách kết quả thực sự là cùng một chuỗi.

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
5

Quảng cáo của Google, có thể dựa trên sở thích của bạn

2. Danh sách lồng nhau: Tạo

Giả sử rằng hai số được đưa ra: số lượng hàng của

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2 và số lượng cột
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
3. Bạn phải tạo một danh sách kích thước ____ ____ 42 × ________ 43, chứa đầy, nói, số không.

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
6

Giải pháp rõ ràng dường như là sai:

Điều này có thể dễ dàng nhìn thấy nếu bạn đặt giá trị của

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
6 thành
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
7, sau đó in giá trị của ____ 48 & nbsp; - nó cũng sẽ bằng 5. Lý do là,
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
9 trả về chỉ một tham chiếu đến danh sách
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
3 một danh sách. Việc lặp lại tiếp theo của phần tử này tạo ra một danh sách các mục
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2 mà tất cả tham chiếu đến cùng một danh sách [cũng như hoạt động
for row in a:
    print[' '.join[[str[elem] for elem in row]]]
2 cho danh sách không tạo danh sách mới], vì vậy tất cả các hàng trong danh sách kết quả thực sự là cùng một chuỗi.

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
7

Sử dụng trình hiển thị của chúng tôi, hãy theo dõi ID của danh sách. Nếu hai danh sách có cùng một số ID, thì thực tế thì cùng một danh sách trong bộ nhớ.

Đầu tiên, hãy điền vào đường chéo chính mà chúng ta sẽ cần một vòng lặp:

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
8

Sau đó điền vào số 0 tất cả các phần tử phía trên đường chéo chính. Để thực hiện điều này, với mỗi hàng với số

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
0, bạn cần gán giá trị cho
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
s = 0
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        s += a[i][j]
print[s]
7 cho ________ 41 = ________ 83, ...,
a = [[0] * m] * n
4. Để làm điều đó, bạn cần các vòng lặp lồng nhau:

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
9

Bằng cách tương tự, với ________ 41 = ________ 86, ...,

a = [[0] * m] * n
7 Đặt các phần tử
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
s = 0
for i in range[len[a]]:
    for j in range[len[a[i]]]:
        s += a[i][j]
print[s]
7 bằng
a = [[0] * m] * n
9:

a = [[1, 2, 3], [4, 5, 6]]
print[a[0]]
print[a[1]]
b = a[0]
print[b]
print[a[0][2]]
a[0][1] = 7
print[a]
print[b]
b[2] = 9
print[a[0]]
print[b]
0

Bạn có thể kết hợp tất cả mã này và nhận một giải pháp khác:

a = [[1, 2, 3], [4, 5, 6]]
print[a[0]]
print[a[1]]
b = a[0]
print[b]
print[a[0][2]]
a[0][1] = 7
print[a]
print[b]
b[2] = 9
print[a[0]]
print[b]
1

Đây là một giải pháp khác, trong đó lặp lại danh sách để xây dựng các hàng tiếp theo của danh sách. Dòng thứ 40 của danh sách bao gồm

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
0 số
a = [[0] * m] * n
9, tiếp theo là một số nguyên
n = 3
m = 4
a = [[0] * m] * n
a[0][0] = 5
print[a[1][0]]
3, tiếp theo là
n = 3
m = 4
a = [[0] * m] * n
a[0][0] = 5
print[a[1][0]]
4 Zeros:

a = [[1, 2, 3], [4, 5, 6]]
print[a[0]]
print[a[1]]
b = a[0]
print[b]
print[a[0][2]]
a[0][1] = 7
print[a]
print[b]
b[2] = 9
print[a[0]]
print[b]
2

Như thường lệ, bạn có thể thay thế vòng lặp bằng trình tạo:

a = [[1, 2, 3], [4, 5, 6]]
print[a[0]]
print[a[1]]
b = a[0]
print[b]
print[a[0][2]]
a[0][1] = 7
print[a]
print[b]
b[2] = 9
print[a[0]]
print[b]
3

Quảng cáo của Google, có thể dựa trên sở thích của bạn

5. Mảng hai chiều: Máy phát điện lồng nhau

Bạn có thể sử dụng các trình tạo lồng nhau để tạo các mảng hai chiều, đặt trình tạo của danh sách là một chuỗi, bên trong trình tạo của tất cả các chuỗi. Hãy nhớ lại rằng bạn có thể tạo một danh sách các hàng

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2 và các cột
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
3 bằng trình tạo [tạo ra một danh sách các phần tử
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
2, trong đó mỗi phần tử là danh sách
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
3 Zeros]:

a = [[1, 2, 3], [4, 5, 6]]
print[a[0]]
print[a[1]]
b = a[0]
print[b]
print[a[0][2]]
a[0][1] = 7
print[a]
print[b]
b[2] = 9
print[a[0]]
print[b]
4

Nhưng danh sách nội bộ cũng có thể được tạo bằng cách sử dụng, ví dụ, Trình tạo như vậy:

n = 3
m = 4
a = [[0] * m] * n
a[0][0] = 5
print[a[1][0]]
9. Làm tổ một máy phát vào một máy phát khác, chúng ta có được

a = [[1, 2, 3], [4, 5, 6]]
print[a[0]]
print[a[1]]
b = a[0]
print[b]
print[a[0][2]]
a[0][1] = 7
print[a]
print[b]
b[2] = 9
print[a[0]]
print[b]
5

Nó liên quan đến vấn đề của chúng tôi như thế nào? Điều này là, nếu số 0 được thay thế bằng một số biểu thức phụ thuộc vào

a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
0 [số dòng] và
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
1 [số cột], bạn sẽ nhận được ma trận được điền theo một số công thức.

Ví dụ: giả sử bạn cần khởi tạo mảng sau [để thuận tiện, thêm không gian được thêm vào giữa các mục]:

a = [[1, 2, 3], [4, 5, 6]]
print[a[0]]
print[a[1]]
b = a[0]
print[b]
print[a[0][2]]
a[0][1] = 7
print[a]
print[b]
b[2] = 9
print[a[0]]
print[b]
6

Trong mảng này có các hàng

IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
02, các cột
IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
03 và phần tử có chỉ số hàng
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
0 và chỉ mục cột
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print[elem, end=' ']
    print[]
1 được tính bằng công thức
IndexError                                Traceback [most recent call last]  
 in []  
     20     timeArray[i] = ws1.cell[row = i+1, column = 4].value  
     21     for j in range [0, 15]:  
---> 22         voltageArray[j][i] =[ws1.cell[row = i+1, column=j+5].value]  
     23         print[j, i]  
     24         print[voltageArray[j][i]] 


IndexError: list index out of range
06.

Như mọi khi, bạn có thể sử dụng Trình tạo để tạo một mảng như vậy:

a = [[1, 2, 3], [4, 5, 6]]
print[a[0]]
print[a[1]]
b = a[0]
print[b]
print[a[0][2]]
a[0][1] = 7
print[a]
print[b]
b[2] = 9
print[a[0]]
print[b]
7

Quảng cáo của Google, có thể dựa trên sở thích của bạn

Bài Viết Liên Quan

Chủ Đề