Thay đổi phần tử trong danh sách 2d python

AceScottie
Người Pháp ngớ ngẩn

Bài viết. 32

Chủ đề. 9

Đã tham gia. Tháng 3 năm 2017

Danh tiếng. 0

#1

12-11-2017, 08. 10 giờ tối (Bài đăng này đã được sửa đổi lần cuối. 13-Nov-2017, 03. 44 giờ sáng bởi AceScottie. )

Tôi có danh sách 2D gồm 10x10 số 0' (người dùng có thể thay đổi số lượng từ dòng lệnh)
list = [
[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, 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, 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, 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, 0]
]
i want to change list[x][y] to a 1
list[x][y] = 1
however the output i get is :
list = [
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]

code:
______0

Đáp lại

Tìm thấy

Đáp lại

heiner55
Dạng chia động từ

Bài đăng. 606

Chủ đề. 3

Đã tham gia. Tháng 11 năm 2016

Danh tiếng. 29

#2

13-Nov-2017, 03. 19 giờ sáng

Bạn muốn gì?
a. một số pixel phải là 1
b. tất cả pixel phải là 1

Đáp lại

Tìm thấy

Đáp lại

Larz60+
aetate et sapientia

Thay đổi phần tử trong danh sách 2d python

Bài viết. 11.483

Chủ đề. 437

Đã tham gia. Tháng 9 năm 2016

Danh tiếng. 442

#3

13-Nov-2017, 03. 30 giờ sáng

Bạn đang truyền nội dung gì trên dòng lệnh?
Nếu bạn chèn một câu lệnh in về nội dung bạn đang gửi tới
hàm thì sẽ rất yên tâm .
ngay sau khi khởi động chính, hãy thêm.
nếu trăn 3. 6.

print(f'w: {w}, h: {h}, startx: {startx}, starty: {starty}')
nếu không thì.
______2

Đáp lại

Tìm thấy

Đáp lại

AceScottie
Người Pháp ngớ ngẩn

Bài viết. 32

Chủ đề. 9

Đã tham gia. Tháng 3 năm 2017

Danh tiếng. 0

#4

13-Nov-2017, 02. 05 giờ chiều

dòng lệnh giống như 'mê cung trăn. py 10 10'
các số chỉ ở đó để đặt chiều cao và chiều rộng của danh sách

Tôi cần có thể thay đổi 1 phần tử duy nhất trong danh sách<
example output
list = [
[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, 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, 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],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]
this would mean the values of startx and starty are both 1
so list[1][1] = 1

Đáp lại

Tìm thấy

Đáp lại

AceScottie
Người Pháp ngớ ngẩn

Bài viết. 32

Chủ đề. 9

Đã tham gia. Tháng 3 năm 2017

Danh tiếng. 0

#6

13-11-2017, 06. 02 PM (Bài đăng này đã được sửa đổi lần cuối. 13-Nov-2017, 06. 02 giờ chiều bởi AceScottie. )

(13-Nov-2017, 05. 43 giờ chiều) Larz60+ đã viết. ' đại loại như ' d0es không hoạt động trong lập trình,
đầu vào thực tế là gì?

không có gì 'giống như' về nó.
nếu danh sách là các phần tử 10x10 thì người dùng (trong trường hợp này là tôi) đặt 10 và 10 làm biến trong dòng lệnh.
không quan trọng nếu đó là 10 10 hay 1000 1000, kích thước của danh sách không liên quan,
câu hỏi của tôi liên quan đến việc thay đổi một thành phần trong danh sách 2D . kích thước của hình ảnh đầy đủ sẽ không thành vấn đề, điều duy nhất quan trọng là tọa độ của một pixel đơn lẻ đó.
imagine this is a square of black pixels,
i want to change 1 singular pixel to white. the size of the full image would not matter the only thing that matters is the coordinates of that one singular pixel.

vì vậy câu hỏi của tôi rất đơn giản.
tại sao 'list[x][y] = 1' thay đổi mọi phần tử ở vị trí 'y' thành 1 cho toàn bộ danh sách
làm thế nào .

đây là mã đầy đủ.
https. //pastebin. com/tseM76rH

Đáp lại

Tìm thấy

Đáp lại

Larz60+
aetate et sapientia

Thay đổi phần tử trong danh sách 2d python

Bài viết. 11.483

Chủ đề. 437

Đã tham gia. Tháng 9 năm 2016

Danh tiếng. 442

#7

13-Nov-2017, 06. 10 GIƠ TÔI

Trích dẫn. ' một cái gì đó như ' d0es không hoạt động trong lập trình,
lời nói của bạn, không phải của tôi.

Trong đoạn mã bên dưới, lưu ý rằng tôi đã thay đổi cuộc gọi thành chính để kiểm tra.

______3kết quả.
w. 10, giờ. 10, bắt đầu. 3, bắt đầu. 7
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0 . x = 3, y = 7
[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, 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]
[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, 0, 0, 0, 0, 0]

created new maze! x = 3, y = 7
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]

Đáp lại

Tìm thấy

Đáp lại

Larz60+
aetate et sapientia

Thay đổi phần tử trong danh sách 2d python

Bài viết. 11.483

Chủ đề. 437

Đã tham gia. Tháng 9 năm 2016

Danh tiếng. 442

#số 8

13-11-2017, 06. 31 PM (Bài đăng này đã được sửa đổi lần cuối. 13-Nov-2017, 06. 31 giờ tối by Larz60+. )

Use this one:
# global vars
import copy
maze =
wright_permission = True


# ----
def set_pixel(x, y, maze):  # Changes the element in x row and y column to 1
    global wright_permission
    maze[x][y] = 1
    return maze

def create_maze(w, h):  # creates a 2D list of 0 from the 2 numbers given in the command line.
    maze = [[0 for x in range(w)] for y in range(h)]
    return maze

def main(w, h, startx, starty):
    # global maze  # loads a global object
    # print(f'w: {w}, h: {h}, startx: {startx}, starty: {starty}')
    maze = create_maze(w, h)  # sets the global object to an 2D list of 0s
    for i in range(0, len(maze)):
        print('{}'.format(maze[i]))
    maze = set_pixel(startx, starty, maze)  # sets a single random element in the list to a 1
    print("\ncreated new maze! x = {}, y = {}".format(startx, starty))
    for j in range(0, len(maze)):
        print(maze[j])


if __name__ == "__main__":
    # try:
    #     w = int(sys.argv[1])
    #     h = int(sys.argv[2])
    # except:
    #     print(
    #         "Error: use 'python maze.py int-width int-height' replacing int-width and int-height with a number for width and height of the maze")
    # main(w, h, random.randint(1, w - 1), random.randint(1, h - 1))
    # Don't use random while testing
    main(10, 10, 3, 7)
Điều đang xảy ra là ban đầu bạn đã tạo mê cung của mình bằng cách tạo một danh sách các phần tử,
và sau đó mở rộng danh sách đó dưới dạng tham chiếu đến phần tử đầu tiên.

Đây là một điểm kỳ lạ của trăn mà ban đầu nhiều người (bao gồm cả tôi) bị lừa.

kết quả.
____5[/i]

Đáp lại

Tìm thấy

Đáp lại

AceScottie
Người Pháp ngớ ngẩn

Bài viết. 32

Chủ đề. 9

Đã tham gia. Tháng 3 năm 2017

Danh tiếng. 0

#9

13-Nov-2017, 06. 43 giờ chiều

cảm ơn bạn.
Tôi hiểu rằng tuy nhiên khi thử nghiệm, tôi có thể thay đổi toàn bộ hàng.

maze[5] = [1, 1, 1, 1, 1, 1, 1, 1, 1]
ban đầu tôi cũng tạo danh sách theo cách khác
maze = []
mazer = [0] * w
for i in range(0, h)
    maze.append(mazer)
và dường như điều đó cũng gặp vấn đề tương tự. tuy nhiên được in ra bằng cùng một phương pháp hoàn toàn tốt.

Đáp lại

Tìm thấy

Đáp lại

Bạn có thể sửa đổi các thành phần danh sách riêng lẻ Python không?

Bạn có thể sửa đổi một mục trong danh sách bằng Python bằng cách tham khảo chỉ mục của mục .

Danh sách 2 chiều trong Python là gì?

Mảng hai chiều là một mảng trong một mảng. Nó là một mảng của các mảng. Trong kiểu mảng này, vị trí của một phần tử dữ liệu được gọi bằng hai chỉ số thay vì một. Vì vậy, nó đại diện cho một bảng với các hàng và dcột dữ liệu

Chúng tôi có thể sửa đổi hoặc thay đổi danh sách sau khi nó được tạo Python không?

Hầu hết các đối tượng Python có thể được thay đổi sau khi chúng được tạo. Tất cả các danh sách, bộ và từ điển đều có thể được thay đổi , trong khi các bộ, số và chuỗi thì không thể. Các đối tượng có thể thay đổi được gọi là có thể thay đổi và hành động thay đổi một trong các đối tượng này là một đột biến.