在默认字典中搜索特定元素 PYTHOn

searching for a specific element in default dictionary PYTHOn

我的字典:

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)

我将向您展示如何找到最常见的元素,其余的您应该自己处理。

有一个名为 collections 的不错的库,其中包含 Counter class。它计算迭代中的每个元素并将它们存储在字典中,键是项目,值是计数。

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().

中的列表