Уведомления

Группа в Telegram: @pythonsu

#1 Май 29, 2020 16:30:38

kolyacher
Зарегистрирован: 2018-03-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста найти ошибку!

Вот этот код работает верно

 a=[int(i) for i in input().split()]
k=len(a)
b=[]
b.append(a)
for j in range(k-1):
    a=[int(i) for i in input().split()]
    b.append(a)
s = [[0,0,0],[0,0,0],[0,0,0]]
for i in range(k):
    for j in range(k):
        for t in range(k):
            if t!=j:
                s[i][j]+=b[i][t]
            if t!=i:
                s[i][j]+=b[t][j]
print(s)
Но стоит только строку
 s = [[0,0,0],[0,0,0],[0,0,0]]
заменить на генератор
  s=[[0]*k]*k
Строки получаются одинаковыми… 8)
Скажите пожалуйста, что я делаю не так???

Отредактировано kolyacher (Май 29, 2020 17:37:40)

Офлайн

#2 Май 29, 2020 20:12:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10024
Репутация: +  857  -
Профиль   Отправить e-mail  

Помогите пожалуйста найти ошибку!

  
>>> lst = [[0] * 3 for _ in range(4)]
>>> lst
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> lst[0][0] = 1
>>> lst
[[1, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>>



Офлайн

#3 Май 29, 2020 20:23:39

kolyacher
Зарегистрирован: 2018-03-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста найти ошибку!

Спасибо! При такой генерации списка программа работает корректно!!! Можно закрывать тему.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version