我不确定我是否正确地考虑了这个问题。我想编写一个函数,它接受一个包含重复项的列表并将一个迭代后缀附加到“重复”列表中。
例如:
dup_list = ['apple','banana','cherry','banana','cherry','orange','cherry']
回归目标:
deduped = ['apple','banana1','cherry1','banana2','cherry2','orange','cherry3']
我的直觉是在使用 while 语句迭代列表时使用 pop 函数,如下所示:
def dedup_suffix(an_list):
dedup=[]
for each in an_list:
an_list.pop(an_list.index(each)) #pop it out
i=1 #iterator
while each in an_list:
an_list.pop(an_list.index(each))
i+=1
appendage=str(each)+"_"+str(i)
else:
appendage=str(each)
dedup.append(appendage)
return dedup
但:
>>> dedup_suffix(dup_list)
['苹果','樱桃','橙子']
感谢任何指针。