Как сравнить два списка разной длины и удалить некоторые элементы? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть два списка, первый содержит некоторые элементы, которые не существуют во втором списке, которые имеют больше элементов.Мне нужно удалить элементы, которых нет во втором списке.

В приведенном ниже примере мне нужно удалить только «0» из первого списка.Итак:

Input:
list1 = [0,1,2,3]
list2 = [1,2,3,4,5,6,7]

Output:
list1 = [1,2,3]
list2 = [1,2,3,4,5,6,7]

Я пробовал этот простой код, но он возвращает пустой список

list1=[0,1,2,3]
list2=[1,2,3,4,5,6,7]

for element in list1:
    for element1 in list2:
        if element != element1:
            for element in list1:
                list1.remove(element)
print(list1)

Любая помощь, пожалуйста?

1 Ответ

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

Вы можете использовать наборы для этого!

set(list1).intersection(list2) # [1,2,3]

Вы также можете использовать понимание списка, но в теории это медленнее.

list1 = [0,1,2,3]
list2 = [1,2,3,4,5,6,7]

list1 = [x for x in list1 if x in list2] # [1,2,3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...