выбор повторяющихся значений из списка списков
есть список списков, он же и является входными данными
list1 = [
['a','b','b','c'],
['a','v','c'],
['a','c'],
['f','a','g','v']
]
нужна функция, которая отфильтрует список списков так, чтобы оставить только те значения в списках, которые повторяются хотя бы 1 раз в другом списке.
таким образом, выходные данные:
list1 = [
['a','c'],
['a','v','c'],
['a','c'],
['a','v']
]
Буду очень рад помощи!!!
Ответы (1 шт):
Автор решения: Oopss
→ Ссылка
l = [
['a', 'b', 'b', 'c'],
['a', 'v', 'c'],
['a', 'c'],
['f', 'a', 'g', 'v']
]
r = {}
for i in l:
for j in set(i):
r[j] = r[j] + 1 if j in r else 1 # Считаем количество элементов во всех списках
l1=[]
for i in l:
l1.append([j for j in i if r[j]>1]) # Если количество элементов больше одного, сохраняем
print(l1)
[['a', 'c'], ['a', 'v', 'c'], ['a', 'c'], ['a', 'v']]