好的,所以我有一个这样的列表,我需要删除重复的值,以便最终得到-Joe Blow,Don Wiliams,Clark Gordon ...
我正在尝试这段似乎无效的代码。我还尝试将列表融合为一组,但没有成功。

有任何想法吗?
谢谢

dupes = ["Joe Joe Joe Blow","Don Don Williams", "Clark Clark Gordon", "Albert Riddle"]
def remove_duplicates(dupes):
    ulist = []
    [ulist.append(x) for x in dupes if x not in ulist]
    return ulist
a=' '.join(remove_duplicates(dupes))

print(a)

最佳答案

将您的字符串转换为列表,将其转换为集合,然后使用''将其重新加入。强制转换为集合时,请通过按原始字符串的索引进行排序来保留顺序。

for s in dupes:
    print(' '.join(sorted(set(s.split()), key=s.index)))


输出:

Joe Blow
Don Williams
Clark Gordon
Albert Riddle


编辑:如果您想更改列表到位:

def remove_duplicates(dupes):
    for i in range(len(dupes)):
        dupes[i] = ' '.join(sorted(set(dupes[i].split()), key=dupes[i].index))

关于python - 从字符串列表中删除重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54029036/

10-11 08:03