我正试图通过删除重复项来清理列表。例如:
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()”和第一个groupby名称,然后删除这些名称中的重复项。你知道吗
您可以这样做,假设您想要每个字符串的唯一第一个单词:
输出
如果要按外观顺序列出唯一元素,可以执行以下操作:
输出
作为第一种解决方案的替代方案,您可以:
{x.split()[0] for x in bb}
set(x.split()[0] for x in bb)
建议您可以尝试拆分每个项目,只收集分隔符(空格)前的第一个字符串
这看起来像是得到了你需要的东西:
如果顺序无关紧要,你可以使用一套理解:
如果顺序很重要,并且您有Python3.6或更高版本,您可以使用dict理解:
如果顺序很重要,并且您有Python 3.5或更低版本,则可以使用OrderedDict:
相关问题 更多 >
编程相关推荐