2016-03-06 39 views
0

如果我們需要在Python中實現counter.elements()(就像在Python中編寫代碼的做法一樣),下面的工作,但我想知道什麼會是一個更Python的寫法呢?作爲一種實踐,你會如何以pythonic的方式編寫counter.elements()?

所以我認爲它類似於:如果你有一個字典的鍵和計數,你如何返回一個數組放置在數組中的所有元素?

import collections 
from functools import reduce # needed for Python 3 

counter = collections.Counter(['hello', 'world', 'hello', 'hi', 'hello', 'hi']) 

print([i for i in counter.elements()]) 

print(reduce(lambda a, b: a + b, [[k] * v for (k, v) in counter.items()])) 

(最後一行是模擬的counter.elements()效果...可能以不同的順序元件,其不被保證。爲了簡化的代碼,就假定該計數不爲負。)

所以問題是,如何以更好的方式或更爲Python的方式寫出最後一行。

+2

也許你可以解釋你在做什麼? –

+0

試圖執行'counter.elements()'我自己作爲練習 –

+0

你設法寫'counter.elements()',是的。仍然不清楚你在問什麼。 –

回答

1

只是使用list(counter.elements())

相關問題