Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Друзья! Подскажите пожалуйста, почему при заполнении матрицы Python изменяется полностью столбец.

Бутик Ученик (87), на голосовании 3 дня назад
Встречаю эту проблему второй раз. Первый решил её другим способом создания массива, через цикл и аппенды. время было удовлетворительное. Сейчас таким спосбом мне не хватает несколько мс и настало время разобраться...
Дополнен 1 месяц назад
Голосование за лучший ответ
Андрей Высший разум (474962) 1 месяц назад
Потому, что:
 a = [...] * n
a_new = [...] * (n + 1)
Ты создаёшь массивы не из отдельных векторов, а из указателей на один и тот же вектор. Но в первом случае это не проявляется, т.к. ты сразу же уничтожаешь созданные строки матрицы, присваивая на их место результаты list(map(...)).

Можно решить проблему так:
 a = [list(map(int, stdin.readline().split())) for _ in range(n)]

a_new = [[0] * (m + 1) for _ in range(n + 1)]
Похожие вопросы