得到解決你的問題,並在同一時間學習Python的最好方法是交互式探索類。在你的情況,你可以嘗試以下
>>> import collections
>>> counter = collections.Counter()
>>> counter[2] = 2
>>> counter[5] = 1
>>> print counter
Counter({2: 2, 5: 1})
>>> dir(counter)
['__add__', '__and__', '__class__', '__cmp__', '__contains__', '__delattr__',
'__delitem__', '__dict__', '__doc__', q__', '__format__', '__ge__', '__getattribute__',
'__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__len__', '__lt__',
'__missing__', '__module__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__',
'___', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__sub__', '__subclasshook__',
'__weakref__', 'clear', ', 'elements', 'fromkeys', 'get', 'has_key', 'items', 'iteritems',
'iterkeys', 'itervalues', 'keys', 'most_common', ', 'popitem', 'setdefault', 'subtract',
'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']
在這個階段,你應該探究一下每個方法的
>>> counter.keys()
[2, 5]
>>> counter.values()
[2, 1]
>>> counter.items()
[(2, 2), (5, 1)]
讓我們確認items()
纔是正道
>>> help(counter.items)
Help on built-in function items:
items(...)
D.items() -> list of D's (key, value) pairs, as 2-tuples
然後解決方案很簡單 - 我們要添加每對的指數
>>> [ factor ** count for factor, count in counter.items()]
[4, 5]
>>> sum([ factor ** count for factor, count in counter.items()])
9
計數器是一種字典。只需遍歷字典並計算產品。 –
你爲什麼使用計數器? –
其所需的 - 是的,這是一個教程的一部分,但我很卡住,無法與我的導師:) 我馬上去字典類型有點接近取得聯繫,謝謝 –