Hướng dẫn enumerate 2d list python - liệt kê python danh sách 2d

Một lời giải thích đơn giản.

Hình ảnh được cấp phép từ cổ phiếu Adobe

Danh sách là gì?

Danh sách chỉ đơn giản là một tập hợp các yếu tố. Trong Python, chúng là một loại dữ liệu, được biểu thị bằng dấu ngoặc.

Ví dụ: [0, 1, 4] là một danh sách với 3 yếu tố. Điều này được gọi là danh sách một chiều vì mỗi yếu tố của danh sách là một số.

Tôi có danh sách sau:

grid = [[2, 6, 8, 6, 9], [2, 5, 5, 5, 0], [1, 3, 8, 8, 7], [3, 2, 0, 6, 9], [2, 1, 4,5,8], [5, 6, 7, 4, 7]]

Tôi đã sử dụng vòng lặp fowling để đi qua từng phần tử ->

for i in xrange(len(grid[i])):
    for j in xrange(len(grid[j])):
        print grid[i][j]
    print "\n"

Nhưng nó không hiển thị hàng cuối cùng.

Vì vậy, đó là cách thích hợp để truyền tải danh sách 2D trong Python?

Hướng dẫn enumerate 2d list python - liệt kê python danh sách 2d

Tế bào thần kinh

4.6924 Huy hiệu vàng33 Huy hiệu bạc54 Huy hiệu đồng4 gold badges33 silver badges54 bronze badges

Khi được hỏi ngày 22 tháng 5 năm 2014 lúc 6:11May 22, 2014 at 6:11

1

Cách thích hợp để vượt qua danh sách 2 chiều là

for row in grid:
    for item in row:
        print item,
    print

Vòng lặp

for i in xrange(len(grid[i])):
    for j in xrange(len(grid[j])):
        print grid[i][j]
    print "\n"
4 trong Python, sẽ chọn từng mục trên mỗi lần lặp. Vì vậy, từ danh sách
for i in xrange(len(grid[i])):
    for j in xrange(len(grid[j])):
        print grid[i][j]
    print "\n"
5 2-D, trên mỗi lần lặp, danh sách 1-D được chọn. Và trong vòng lặp bên trong, các yếu tố riêng lẻ trong danh sách 1-D được chọn.

Nếu bạn đang sử dụng Python 3.x, vui lòng sử dụng

for i in xrange(len(grid[i])):
    for j in xrange(len(grid[j])):
        print grid[i][j]
    print "\n"
6 làm hàm, không phải là một tuyên bố, như thế này

for row in grid:
    for item in row:
        print(item, end = " ")
    print()

Đầu ra

2 6 8 6 9
2 5 5 5 0
1 3 8 8 7
3 2 0 6 9
2 1 4 5 8
5 6 7 4 7

Nhưng, trong trường hợp, nếu bạn muốn thay đổi phần tử ở một chỉ mục cụ thể, thì bạn có thể làm

for row_index, row in enumerate(grid):
    for col_index, item in enumerate(row):
        gird[row_index][col_index] = 1     # Whatever needs to be assigned.

Đã trả lời ngày 22 tháng 5 năm 2014 lúc 6:12May 22, 2014 at 6:12

Hướng dẫn enumerate 2d list python - liệt kê python danh sách 2d

Thefourtheyethefourtheyethefourtheye

227K52 Huy hiệu vàng443 Huy hiệu bạc486 Huy hiệu Đồng52 gold badges443 silver badges486 bronze badges

8

Thay vào đó hãy thử theo dõi. Bạn có thể thực hiện hoạt động cần thiết thay vì "GRID [i] [J]"

for i in range(len(grid)):
    for j in range(len(grid[i])):
        print grid[i][j]
    print '---'

Đã trả lời ngày 22 tháng 5 năm 2014 lúc 6:27May 22, 2014 at 6:27

Hướng dẫn enumerate 2d list python - liệt kê python danh sách 2d

Tại sao không:

for i in grid:
    for j in i:
        print("{}".format(j))
    print("\n")

Đã trả lời ngày 22 tháng 5 năm 2014 lúc 6:15May 22, 2014 at 6:15

Hướng dẫn enumerate 2d list python - liệt kê python danh sách 2d

FLOGFLLOGFLFlogFR

6899 Huy hiệu bạc16 Huy hiệu Đồng9 silver badges16 bronze badges

Hãy thử theo dõi ...

for i in grid:
    for j in i:
        print j
    print '----'

Đã trả lời ngày 22 tháng 5 năm 2014 lúc 6:16May 22, 2014 at 6:16

1

Tại sao không sử dụng trong khi vòng lặp để vượt qua danh sách 2D

grid = [[2, 6, 8, 6, 9], [2, 5, 5, 5, 0], [1, 3, 8, 8, 7], [3, 2, 0, 6, 9], [2, 1, 4,5,8], [5, 6, 7, 4, 7]]
i = 0
while i < len(grid):
    j = 0
    while j < len(grid[0]):
        print (grid[i][j], end=' ')
        j += 1
    print() #new line
    i += 1

Đã trả lời ngày 4 tháng 6 năm 2019 lúc 17:39Jun 4, 2019 at 17:39

Hướng dẫn enumerate 2d list python - liệt kê python danh sách 2d

BikashbikashBikash

Phù hiệu đồng 14266 bronze badges

Nếu số lượng cột giống nhau trong tất cả các danh sách bên trong thì điều này sẽ thích ==

for i in xrange(len(grid[i])):
    for j in xrange(len(grid[j])):
        print grid[i][j]
    print "\n"
0

Và nếu bạn không biết không. của các cột và trong mọi tình huống, điều này sẽ hữu ích ==

for i in xrange(len(grid[i])):
    for j in xrange(len(grid[j])):
        print grid[i][j]
    print "\n"
1

Bạn cũng có thể sử dụng các thứ sau nếu các hàng và cột khác nhau hoặc giống nhau:

for i in xrange(len(grid[i])):
    for j in xrange(len(grid[j])):
        print grid[i][j]
    print "\n"
2

Đã trả lời ngày 23 tháng 1 lúc 14:56Jan 23 at 14:56

Hướng dẫn enumerate 2d list python - liệt kê python danh sách 2d

1