нарезать и удалить из списка в той же строке - PullRequest
4 голосов
/ 13 апреля 2019

Когда я делаю:

abc = [1,2,3,4,5]
dd = (abc[:]).remove(4)
print(dd)
print(abc)

результат:

нет
[1, 2, 3, 4, 5]

Но если я сделаю:

abc = [1,2,3,4,5]
dd = abc[:]
dd.remove(4)
print(dd)
print(abc)

результат:

[1, 2, 3, 5]
[1, 2, 3, 4, 5]

Может кто-нибудь объяснить, почему эти 2 вещи разные? Я думаю, это будет то же самое.

Ответы [ 2 ]

3 голосов
/ 13 апреля 2019

Поскольку вы помещаете возвращаемое значение метода .remove() в переменную dd, а возвращаемое значение этого метода всегда равно None


abc = [1,2,3,4,5]
dd = abc[:]
rt_value = dd.remove(4)
print(rt_value)
print(dd)
print(abc)

приведет

Нет
[1, 2, 3, 5]
[1, 2, 3, 4, 5]

0 голосов
/ 14 апреля 2019

Мы можем получить доступ к ряду элементов в списке, используя оператор среза (двоеточие).Кроме того, вы можете проверить https://docs.python.org/2/library/copy.html для лучшего понимания.

...