Python .reverse () и .extend () - PullRequest
       7

Python .reverse () и .extend ()

0 голосов
/ 06 февраля 2020

Я новичок в Python. Я пытаюсь создать список из 1 ~ 5, затем распечатать обратный список и объединить их как [1,2,3,4,5,5,4,3,2,1], и вот моя работа.

num1 = list(range(1,6))
num2 = num1.reverse()
print(num1)
print(num2)
print(num1.extend(num2))

Вывод num1 обратный [5,4,3,2,1]. Выход num2 равен None, а функция расширения не работает. Как .reverse() и .extend() действительно работают?

Ответы [ 2 ]

2 голосов
/ 06 февраля 2020
list.reverse()

выполняет инверсию на месте, поэтому ваш исходный список переворачивается. А также, метод reverse() возвращает None

Следовательно, ваш num1 становится обратным и num2 равен None.

Аналогичным образом, extend также изменяет список аргументов и возвращает None

Чтобы сделать эту работу:

num1 = list(range(1,6))
num2 = num1[::-1]
print(num1)
print(num2)
num1.extend(num2)
print(num1)

Дает:

[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
[1, 2, 3, 4, 5, 5, 4, 3, 2, 1]
1 голос
/ 06 февраля 2020

list.reverse() ничего не возвращает; он мутирует num1, чтобы быть его обратным.

list.extend() берет другой список и добавляет все элементы из этого списка в список, к которому вы обращаетесь. Поскольку list.reverse() ничего не возвращает, num2 становится None. Итак, вы расширяете num2 с помощью none, что не приведет к каким-либо изменениям в num1.

См. здесь для описания некоторых методов списка.

...