Сравнение списков. Какие элементы НЕТ в списке? - PullRequest
0 голосов
/ 11 июля 2020

У меня есть 2 следующих списка, и я хочу получить элементы списка2, которых нет в списке1:

list1 = ["0100","0300","0500"]
list2 = ["0100","0200","0300","0400","0500"]

Мой результат должен быть:

list3 = ["0200","0400"]

Я был проверяю способ вычитания одного из другого, но пока я не могу получить список 3, как хочу

Ответы [ 5 ]

2 голосов
/ 11 июля 2020
list3 = [x for x in list2 if x not in list1]

Или, если вас не волнует порядок, вы можете преобразовать списки в наборы:

set(list2) - set(list1)

Затем вы также можете преобразовать это обратно в список:

list3 = list(set(list2) - set(list1))
1 голос
/ 11 июля 2020
list1 = ["0100","0300","0500"]
list2 = ["0100","0200","0300","0400","0500"]

list3 = list(filter(lambda e: e not in list1,list2))
print(list3)
1 голос
/ 11 июля 2020

может ли это решение сработать для вас?

list3 = []
for i in range(len(list2)):
    if list2[i] not in list1:
        list3.append(list2[i])
0 голосов
/ 11 июля 2020

set функций помогут вам решить вашу проблему в нескольких строках кода ...

set1=set(["0100","0300","0500"])
set2=set(["0100","0200","0300","0400","0500"])
set3=set2-set1
print(list(set3))

set дает вам более быструю реализацию в Python, чем списки ..... ..........

0 голосов
/ 11 июля 2020

Думаю, здесь есть ответ:

Python найти элементы в одном списке, которых нет в другом

import numpy as np

list1 = ["0100","0300","0500"]
list2 = ["0100","0200","0300","0400","0500"]

list3 = np.setdiff1d(list2,list1)

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