Проверка на нахождение значений из одного списка в другом
У меня есть следующие списки:
mass_1 = [[7], [4, 5], [13], [11], [1], [6], [2, 4, 11], [12], [3], [6, 10], [4], [0], [8], [9]]
mass_2 = [[4], [5], [2], [4], [11], [6], [10]]
так вот моя задача проверить, если в списке один есть одинарный список с значением из списка два, то это значение нужно вычеркнуть из списка 2 все значения. Т.е. если есть значение 4 в первом и во втором, то из второго нужно вычеркнуть все четвёрки.
Поправка: Список mass_2 можно представить как монолитный список с данными значениями.
Ответы (3 шт):
Автор решения: nomnoms12
→ Ссылка
mass_1 = [[7], [4, 5], [13], [11], [1], [6], [2, 4, 11], [12], [3], [6, 10], [4], [0], [8], [9]]
mass_2 = [[4], [5], [2], [4], [11], [6], [10]]
for li in mass_1:
if len(li) == 1:
mass_2 = [x for x in mass_2 if x != li]
print(mass_2) # [[5], [2], [10]]
Автор решения: Danis
→ Ссылка
mass_1 = [[7], [4, 5], [13], [11], [1], [6], [2, 4, 11], [12], [3], [6, 10], [4], [0], [8], [9]]
mass_2 = [[4], [5], [2], [4], [11], [6], [10]]
for el in mass_1:
while el in mass_2:
mass_2.remove(el)
print(mass_2)
Автор решения: TigerTV.ru
→ Ссылка
Просто используем filter:
mass_1 = [[7], [4, 5], [13], [11], [1], [6], [2, 4, 11], [12], [3], [6, 10], [4], [0], [8], [9]]
mass_2 = [[4], [5], [2], [4], [11], [6], [10]]
mass_2 = list(filter(lambda x: x not in mass_1, mass_2))
print(mass_2)