在默认字典中搜索特定元素 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()
.
中的列表
我的字典:
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()
.