2017-09-13 84 views
0

我需要在列表中只打印重复的数字,并且需要乘以计数。如下的代码,输出应该是,如何在列表中只打印重复的数字?

{1:3,2:2,3:2}需要通过计数乘以每个数字和打印作为单独的答案:

answer1 = 1*3, answer2 = 2*2 , answer3 = 3*2 

当前尝试:

from collections import Counter 

    alist = [1,2,3,5,1,2,1,3,1,2] 
    a = dict(Counter(a_list)) 

    print(a) 
+1

然后遍历'a'并完成剩余的工作。 – Debabrata

+1

有4次出现1,而不是3 BTW –

+0

请继续尝试。没有理由停下来。 –

回答

0

Counter已经完成了繁重工作。因此,对于其余的问题,如何根据需要生成多次出现的值列表,并根据需要对输出进行格式化? (排序键似乎有必要使指标符合键顺序):

from collections import Counter 

a_list = [1,2,3,5,1,2,1,3,1,2] 
a = ["{}*{}".format(k,v) for k,v in sorted(Counter(a_list).items()) if v > 1] 

print(a) 

结果:

['1*4', '2*3', '3*2'] 

如果你想要的数值结果,而不是:

a = [k*v for k,v in sorted(Counter(a_list).items()) if v > 1] 

结果(可能更有益):

[4, 6, 6] 

分配变量(answer1,answer2,answer3 = a)不是一个好主意。保持索引list

+0

谢谢这真的很有帮助我怎么才能得到答案我的意思是指数1答案应该是6.我怎样才能回忆他们单独的答案为4,6,6?请帮助我了解 – Alex

+0

。看我的编辑。 –

+0

谢谢你精彩 – Alex