我有一张单子
l=['a','b','c','c','a','d']
输出应该返回列表中的所有重复元素及其索引
输出:
out = {a:['0','4'],c:['2','3']}
我试过了
def nextDuplicates(c):
dupl_c = dict()
sorted_ind_c = sorted(range(len(c)), key=lambda x: c[x])
for i in xrange(len(c) - 1):
if c[sorted_ind_c[i]] == c[sorted_ind_c[i+1]]:
dupl_c[ sorted_ind_c[i] ] = sorted_ind_c[i+1]
return dupl_c
一个
dict
理解加上一个list
理解会起作用(即使发生两次以上):我在预期的输出中看到索引是字符串。我不明白为什么,但是如果你真的想把它们作为字符串,用
str(i) for i, x
替换i for i, x
。你知道吗More on list comprehensions
遍历列表并检查元素是否已经存在于字典中。如果没有,则获取该元素的所有索引并将该元素附加到dictionary中。你知道吗
使用
collections.defaultdict
+aset
迭代可以更快地查找大于1的计数:相关问题 更多 >
编程相关推荐