Удаление значений из списка
Допустим, есть два списка со значениями:
X = 'something'
Y = 123
List1 = [1,"big","small",X,Y]
List2 = [1,X,Y]
result = ["big","small"]
Какой метод использовать, чтобы получить этот результат?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Если порядок следования элементов не важен, то можно просто вычесть множества, это будет сложность O(n):
X = 'something'
Y = 123
List1 = [1,"big","small",X,Y]
List2 = [1,X,Y]
result = list(set(List1) - set(List2))
print(result)
Если же порядок элементов нужно сохранить, то можно так, хотя это и менее оптимально - сложность O(n2):
result = [x for x in List1 if x not in List2]
Впрочем, этот вариант тоже можно ускорить до O(n):
Set2 = set(List2)
result = [x for x in List1 if x not in Set2]