Как я могу написать функцию, которая меняет порядок списка без создания новой переменной? - PullRequest
1 голос
/ 18 июня 2020

Это то, что я пробовал:

def reverse(given_list):
    """Reverses the order of a list (does not create a new object; simply reverses the order of the list.

    >>> r = ["Mario", "Bowser", "Luigi"]
    >>> reverse(r)
    >>> r
    ["Luigi", "Bowser", "Mario"]

    """
    given_list = sorted(given_list, key = given_list.index, reverse = True)

list_1 = ["a", "b", "c", "d"]
reverse(list_1)
print(list_1)

Однако list_1 остается неизменным, когда я запускаю эту функцию. Как я могу заставить мою функцию генерировать вывод, как показано в строке документации? Пожалуйста, помогите.

1 Ответ

0 голосов
/ 18 июня 2020

Вам нужно вернуть given_list как результат вашего метода и использовать его в своем операторе print. Например:

def reverse(given_list):
    given_list = sorted(given_list, key = given_list.index, reverse = True)
    return given_list

list_1 = ["a", "b", "c", "d"]
list_1_reversed = reverse(list_1)
print(list_1_reversed)

Если указать list_1 в качестве параметра метода, будет создана и использована копия. Итак, этот вопрос касается объема переменных . Вы можете найти информацию об объеме переменных в своей любимой книге о python или через поиск в Google.

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