Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 3, 2025 20:14:12

DmitrD
Зарегистрирован: 2025-04-03
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Странный результат присваивания в списке

     MapWidth=10
    MapHeight=10
    MapAfter=[[[0,[0,0,0,0]]]*MapWidth]*MapHeight
    MapAfter[2][1]=[1,[1,1,1,1]]
    for y in range(MapHeight):
        print(MapAfter[y])
Выполняется присваивание не ячейке 1 в строке 2, а всему столбцу 1.
Если кто знает, почему такое происходит, сообщите, пожалуйста.

Отредактировано DmitrD (Апрель 3, 2025 21:11:04)

Офлайн

#2 Апрель 3, 2025 20:35:58

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2765
Репутация: +  185  -
Профиль   Отправить e-mail  

Странный результат присваивания в списке

> Если кто знает, почему такое происходит, сообщите, пожалуйста.

Не надо создавать списки умножением на число. Так ты создаёшь не новый список, а просто копируешь ссылку на существующий.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 вчера 13:07:17

Alex.Pro.
От: Марик
Зарегистрирован: 2024-11-13
Сообщения: 78
Репутация: +  2  -
Профиль   Отправить e-mail  

Странный результат присваивания в списке

DmitrD
MapAfter=[[[0,[0,0,0,0]]]*MapWidth]*MapHeight
Какой хитрый об'ект получается! Толи список списка списков, толи чёртишо и сбоку бантик.

Отредактировано Alex.Pro. (вчера 13:12:23)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version