2017-09-13 83 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