Записки реликта - November 30th, 2008 [entries|archive|friends|userinfo]
Latimeria chalumnae

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

November 30th, 2008

Странности со списками в Python [Nov. 30th, 2008|12:25 pm]
[Tags|, , ]

Тем временем то ли нашёл ещё одну крупную кривизну то ли в Питоне, то ли в собственных руках.

Был мне нужен список списков одинаковых значений. И я его, недолго думая, организовал строчкой:
L = [[1] * 30] * 30]

Но после этого, попытавшись с этим списком работать, я обнаружил, что присваивание 0 какому-то из элементов в строке обнуляет всю строку. Немножко потупив, я догадался, что, скорее всего, дело в питоновском implicit sharing (кстати, что-то я с утра туплю — есть устоявшийся русский термин?), и написал вместо вышеупомянутой строки цикл:
L = []
for i in range(30):
    М = []
    for j in range(30):
        М += [1]
    L += [М]

Всё немедленно заработало, конечно. "Но осадочек остался". Как-то, по-моему, это "неаккуратненько"©. А вы как думаете?
Link4 комментария|Оставить комментарий

navigation
[ viewing | November 30th, 2008 ]
[ go | Previous Day|Next Day ]