Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для Chevis
21 / 13 / 10
Регистрация: 27.09.2017
Сообщений: 97

Проблема с функцией

11.08.2019, 20:52. Показов 2016. Ответов 2

Студворк — интернет-сервис помощи студентам
Всем привет. Делая небольшой проект, натыкаюсь на некую проблему с присваиванием. Вот код для исследования моей проблемы:
Python
1
2
3
4
5
6
7
list_list = [[0,1],[1,2],[2,3],[3,4]]
def func(test_list):
    for i in range(len(test_list)):
        test_list[i] = [0,0]
    return test_list
func(list_list)
input(list_list)
Вопрос. Почему после вызова возвращающей функции func переменной list_list присваивается значение этой функции? Если я же захотел, чтобы переменной list_list присвоилось значение функции func, то я бы сделал так:
Python
1
list_list = func(list_list)
В чём моя ошибка или недопонимание?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.08.2019, 20:52
Ответы с готовыми решениями:

Проблема с функцией
def(x, y): i = 0 while i != y: cls() n1 = random.randint(1, x) n2 = random.randint(1, x) ...

Проблема с функцией
Имеем рабочий код (игра в города). cityes = print("Игра в города. Что бы закончить игру введите слово стоп") ...

Проблема с функцией
Помогите пожалуйста , в чем заключается ошибка? И как сделать так чтобы при вводе "mining stop" Функция выключалась? :help: ...

2
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.08.2019, 21:28
Лучший ответ Сообщение было отмечено Chevis как решение

Решение

Цитата Сообщение от Chevis Посмотреть сообщение
В чём моя ошибка или недопонимание?
недопонимание. ты меняешь лист в функции используя его встроенные методы, так как лист мьютабл (изменяемый) то новых объектов не создается, редактируется исходный лист.
Это важный момент в разработке - если нет необходимости менять исходный объект, то в методе создают его копию или скажем используют листкомпс, чтобы не менять исходного. Существует, кстати, правило чистого кода о том, что нельзя менять то, что приходит в аргументе функции (твой лист) так как это может быть неожиданным для пользователя твоего метода. А ведь явное лучше неявного

решение -создать копию листа, или в твоем случае сформировать новый и его вернуть

Добавлено через 4 минуты
Python
1
2
def func(test_list):
    return [[0,0] for e in test_list]
1
 Аватар для Chevis
21 / 13 / 10
Регистрация: 27.09.2017
Сообщений: 97
11.08.2019, 22:05  [ТС]
Welemir1, Спасибо тебе большое за развернутый ответ! А то я уж намучился с этим
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.08.2019, 22:05
Помогаю со студенческими работами здесь

Проблема с функцией
#include <iostream> #include <cmath> #include <windows.h> #include <stdlib.h> #include <iomanip> using namespace std; ...

Проблема с функцией
Скажите как ее решить код ненадо хотябы строчку этой функции как будет выглядить

Проблема с функцией
Здравствуйте, уважаемые программисты. Заранее извиняюсь, что стал часто сюда писать, но уже битый час не могу найти ошибку в своём решении...

Проблема с функцией LookupAccountSidA
Здравствуйте пишу небольшую программу (сервис) который бы при входе писал имя пользователя который залогинился(вошел в систему)в файл.Вот...

Проблема с функцией find
неожиданный трабл x=0.1:0.1:100; find(x==16) ans = 160 find(x==17) ans = 1×0 empty double row vector find(x==18) ans = ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru