Как удалить список в списке? - PullRequest
1 голос
/ 23 июня 2019

Я пытаюсь удалить список в списке, но мой код не может этого сделать, даже если я удалил список.

y = [45]  
x = [1,2,3,5,y]    

del y        
print(x)

Вывод на печать x:

[1, 2, 3, 5, [45]]

Мой вывод отображается как [1, 2, 3, 5, [45]], что означает, что список y все еще существует в списке x.
Но я удалил список y в своем коде. Почему список y все еще не удален? Что-то не так с моим кодом? Как удалить весь список в Python?

Ответы [ 3 ]

1 голос
/ 23 июня 2019

Посмотрите здесь и поиграйте с ним.

В питоне все variables - это просто names, которые связаны с объектами. Это не то же самое, что C или C++, где variables равны memory locations.

В вашем коде y и x[4] оба связаны с [45], который является объектом списка. Когда вы del y, вы не можете остановить x[4] от привязки к [45].

0 голосов
/ 26 июня 2019

Удалить список, который присутствует внутри другого списка.

Используя функцию удаления, мы также можем удалить список, который присутствует внутри другого.

Запустите следующий код:

y = [45]  
x = [1,2,3,5,y]    

x.remove(y)
print(x)

x.remove(y), который удаляет список y в списке x.

выход:

[1, 2, 3, 5]

0 голосов
/ 23 июня 2019

Если вы хотите удалить n -й элемент list, вы должны использовать del следующим образом:

y = [45]
x = [1,2,3,5,y]
del x[4] # 4 means last element of x as indexing starts with 0
print(x) # [1,2,3,5]
print(y) # [45]

Обратите внимание, что после этого y остается неизменным.У list s также есть метод .remove, который удалит первый случай, рассмотрим следующий пример:

a = [1,2,3,1,2,3,1,2,3]
a.remove(3)
print(a) # [1, 2, 1, 2, 3, 1, 2, 3]

remove вызовет ValueError, если в list.

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