mã số
Khi tôi thử duyệt qua một mảng 2D và ghi lại các cặp (i,j) mà tôi muốn, tôi thấy rằng hàm index luôn trả về cùng một j trong mỗi vòng lặp khác nhau. Tôi nghĩ trong mỗi vòng lặp, "cell" phải khác nhau, mặc dù chúng có thể có cùng giá trị. Thực sự bối rối.
Mã Khi tôi thử lặp qua mảng 2D và ghi lại cặp (i,j) tôi muốn, tôi thấy rằng hàm chỉ mục luôn trả về cùng một j trong mỗi vòng lặp khác nhau. Tôi nghĩ rằng trong mỗi vòng lặp, "ô" phải khác nhau, mặc dù chúng có thể có cùng giá trị.
mã số
Như tôi đã nói, bạn có thể thấy rằng thay vì [(0,0),(0,1),(0,2),...], kết quả nằm ở hình trên.
Mã thì như tôi đã nói, và bạn có thể thấy kết quả không phải là [(0, 0), (0, 1), (0, 2), ...], mà như hình minh họa ở trên.
Thêm câu trả lời
Câu trả lời tuyệt vời được đề xuất
chỉ số
là công cụ sai ở đây. Hãy nhớ rằng chỉ số
luôn trả về kết quả khớp ĐẦU TIÊN. Nếu bạn có nhiều lần xuất hiện 0, nó sẽ chỉ trả về chỉ mục của lần đầu tiên.
Lập chỉ mục không phải là công cụ phù hợp ở đây. Hãy nhớ rằng lập chỉ mục luôn trả về mục khớp đầu tiên. Nếu có nhiều lần xuất hiện số 0, hàm sẽ chỉ trả về chỉ mục của lần xuất hiện đầu tiên.
Bạn cần sử dụng enumerate để theo dõi cả chỉ mục lẫn nội dung:
Bạn cần sử dụng enumerate để có thể theo dõi cả chỉ mục và nội dung:
đối với y, hàng trong enumerate(board):
đối với x, ô trong enumerate(row):
nếu ô == RỖNG:
hành động.thêm((y, x) )
mảng = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
cặp = []
đối với i trong phạm vi (len (arr)):
đối với j trong phạm vi (len(arr[i])):
cặp.thêm((i, j))
in(cặp)
Đầu ra: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
Tôi hy vọng điều này đáp ứng được nhu cầu của bạn
Tôi hy vọng điều này đáp ứng được nhu cầu của bạn
Thêm câu trả lời
Tôi là một lập trình viên xuất sắc, rất giỏi!