我的字典:
expiry_strike = defaultdict(<type 'list'>, {'2014-02-21': [122.5], '2014-01-24': [123.5, 122.5, 119.0, 123.0]})
expiry_value = defaultdict(<type 'list'>, {'2014-02-21': [-100], '2014-01-24': [-200, 200, 1200, 200]})
我的问题:
我想运行一个循环
找到公共元素并在expiry_strike
(在这种情况下为122.5),
如果找到共同元素,
然后我想在expiry_value
中添加值。 (这里我要添加-100 + 200)
答案 0 :(得分:1)
我将向您展示如何找到最常见的元素,其余的应该自己处理。
这个名为collections
的好库有一个Counter
类。它对可迭代中的每个元素进行计数,并将它们存储在字典中,其中键是项,值是计数。
from collections import Counter
expiry_strike = {'2014-02-21': [122.5], '2014-01-24': [123.5, 122.5, 119.0, 123.0]}
for values in expiry_strike.values():
counts = Counter(values)
print max(counts , key=lambda x: counts[x])
# key=lambda x: counts[x] says to the max function
# to use the values(which are the counts) in the Counter to find the max,
# rather then the keys itself.
# Don't confuse these values with the values in expiry_strike
这会找到expiry_strike
中所有不同键的最常见元素。如果您想使用expiry_strike
中的所有值找到最常见的元素,则必须合并expiry_strike.values()
中的列表。