0

Проблема со списком (Python)

В первых строках при изменении числа на 5 в списке по итогу только одно число, равное 5. Но ниже, когда я создаю тот же список, но выражая его в виде произведения на числа, сделав то же самое, вывод получается другим. Такое ощущение, что при изменении числа код сначала умножает список на 2, подставляет число 5 вместо 0 и только потом множит список на 3. Как же на самом деле работает код? https://sololearn.com/compiler-playground/cCEubL7jj0ic/?ref=app

10th Aug 2025, 12:22 PM
Сулейман Алиев
Сулейман Алиев - avatar
2 ответов
+ 2
В первую очередь, довай определимся что такое массив или список (питоновские списки это по факту массивы). Массив хранит в себе многие елементы, которые надо както хранить в памяти. В языках более низких чем питон есьт такое понятие как поинтер (указатель). Такчто когда например в С мы саздоем массив, мы по факту создаем число которое являеся адресом на первый элемент массива. Как это относится к питону? Ну в питоне мы тоже делоем что то похожее. Вместо простых чисел наши массивы хронят уже блее сложные структуры. И нарямую поинтеры мы уже не используем, но принцип такойже. Созданый массив а, это не сам масив а референс(ссылка) на массив. Когда мы создаем 2д массив, наш наружний массив также хранит в себе только ссылки на внутрениее массивы. В твоем коде ты создешь массив внутрений сначала, который по факту хронится просто как ссылка на этот моссив. А потом ты это ссылку умножешь, получая массив в котором 3 копии ссылки на один и тот же массив. Такчто если ты изменяшь "первый" массив, все 3 меняются.
10th Aug 2025, 1:06 PM
Aleksei Radchenkov
Aleksei Radchenkov - avatar
+ 2
Aleksei Radchenkov спасибо за пояснение!
10th Aug 2025, 6:48 PM
Сулейман Алиев
Сулейман Алиев - avatar