我试图删除dict中的重复值,但它不起作用:
samples_antibiotics_with_duplicates = {'S00541-09': ['Streptomycin', 'Sulfamethoxazole', 'Trimethoprim', 'Spectinomycin', 'Streptomycin', 'Streptomycin', 'Trimethoprim']}
samples_antibiotics = {}
for key,value in samples_antibiotics_with_duplicates.iteritems():
if value not in samples_antibiotics.values():
samples_antibiotics[key] = value
print samples_antibiotics
打印:
^{pr2}$
如果您不关心保留原始顺序,
set(my_list)
将删除所有重复项。在如果您想保留原始顺序,则
list(OrderedDict.fromkeys(my_list))
你可以试试这个:
下面的dict comprehension将从原始dict创建一个新dict,没有任何重复值:
列表(或任何容器)的
set
版本不包含任何重复项,因为集合不允许任何重复项(这就是它们像dict一样需要散列项的原因)。在正如@CoryKramer在评论中所说,这里给出的解决方案(一般来说)不会保留值列表中项目的顺序。如果这对你很重要,那你就得去做别的事了。在
相关问题 更多 >
编程相关推荐