Python - Измените неизвестную переменную типа кортеж вне функции без глобальных и не возврата - PullRequest
0 голосов
/ 27 февраля 2019

Это очень специфический вопрос для очень конкретной ситуации.Моя функция должна возвращать None, и я не знаю имя переменной, которую мне нужно изменить перед этим.Все, что я знаю, это то, что функция должна изменять переменную.

def next(list):
    temporary = [x for x in list]
    temporary.append(temporary[-1] + 1)
    ??? = temporary
    return None
"""
>>>secrettuple = (2, 3, 4, 5)
>>>next(secrettuple)
>>>secrettuple
[2, 3, 4, 5, 6]
"""

Извините, если это слишком похоже на другую статью на сайте, я просматривал 2 часа и не смог найтиответьте на мою проблему, возможно, я не использовал правильные условия поиска.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Я нашел способ сделать это, это было проще, чем я думал

def next(list):
    temporary = [x for x in list]
    list.append(temporary[-1] + 1)

Это добавит элемент как в кортежи, так и в списки, это все, что мне нужно было сделать, чтобы иметь возможность

Редактировать: я не знаю, почему это сработало для меня, но другие люди, кажется, получают ошибки при этом

0 голосов
/ 27 февраля 2019

При условии, что вы имеете дело с list объектом (который является изменяемым):

def next(lst, some_lst):
    temporary = [x for x in lst]
    temporary.append(temporary[-1] + 1)
    some_lst[:] = temporary

next(secrettuple, real_list)

Вам не нужно return None, так как по умолчанию функция вернет None.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...