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

2024-06-02 07:39:37 发布

您现在位置: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)


Tags: 元素字典valuetypelistexpirystrike本例
1条回答
网友
1楼 · 发布于 2024-06-02 07:39:37

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

有一个很好的库叫做collections,里面有一个Counter类。它对iterable中的每个元素进行计数,并将它们存储在字典中,其中键是项,值是计数。你知道吗

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()中的列表。你知道吗

相关问题 更多 >