我想要清理一个列表,去掉其中的重复项。例如:
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()”方法,首先按名称进行分组,然后在这些名称中删除重复项。
set(x.split()[0] for x in bb)
。 - RoadRunnerlist(collections.OrderedDict.fromkeys(x.split()[0] for x in bb).keys())
是另一种方式。 - RoadRunner