Я пытаюсь очистить список, удалив дубликаты.Например:
bb = ['Gppe (Aspirin Combined)',
'Gppe Cap (Migraine)',
'Gppe Tab',
'Abilify',
'Abilify Maintena',
'Abstem',
'Abstral']
В идеале мне нужно получить следующий список:
bb = ['Gppe',
'Abilify',
'Abstem',
'Abstral']
Что я пробовал:
Разделить списоки удалите дубликаты (наивный подход)
list(set(sorted([j for bb_i in bb for j in bb_i.split(' ')])))
, что оставляет много «мусора»:
['(Aspirin',
'(Migraine)',
'Abilify',
'Abstem',
'Abstral',
'Cap',
'Combined)',
'Gppe',
'Maintena',
'Tab']
Найдите самое частое слово:
Counter(['Gppe (Aspirin Combined)', 'Gppe Cap (Migraine)', 'Gppe Tab').most_common(1)[0][0]
Но я не уверен, как найти похожие слова (группа) ??
Мне интересно, можно ли использовать своего рода groupby () и первую группу по именам, а затем удалять дубликаты в этих именах.