Найти - Пользователи
Полная версия: Странный результат присваивания в списке
Начало » Python для новичков » Странный результат присваивания в списке
1
DmitrD
     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.
Если кто знает, почему такое происходит, сообщите, пожалуйста.
Rodegast
> Если кто знает, почему такое происходит, сообщите, пожалуйста.

Не надо создавать списки умножением на число. Так ты создаёшь не новый список, а просто копируешь ссылку на существующий.
Alex.Pro.
DmitrD
MapAfter=[[[0,[0,0,0,0]]]*MapWidth]*MapHeight
Какой хитрый об'ект получается! Толи список списка списков, толи чёртишо и сбоку бантик.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB