基于多值条件打印字典键

2024-10-01 00:22:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字典,每个键有两个值,例如:

my_dict = {'Stock A': (100, 0.5), 'Stock B': (20, 0.9), 'Stock C': (40, 0.75), 'Stock D': (45, 0.3)}

如果这两个值都满足特定的要求,我想返回dictionaries键。所以假设我想要每个第一个值大于30,第二个值小于0.6的键。这两个条件都需要满足才能返回密钥。所以在这种情况下,我希望A股和D股能被退回。我很高兴单独打印出这些键,但是如果有一种方法可以用键和两个值附加一个新字典,那就太好了。由于我对字典的知识是无可救药的不完整,我的价值观没有标题,它们只是价值观,只是为了让事情变得更难。在

我设想使用的代码类型如下:

^{pr2}$

我对这种尝试是多么的不准确感到尴尬,但我不知道如何应对这一次。在


Tags: 方法标题字典mystock密钥情况条件
3条回答

您需要使用.items()迭代dict,然后可以将元组解压为2个变量(firstValsecondVal):

my_dict = {'Stock A': (100, 0.5), 'Stock B': (20, 0.9), 'Stock C': (40, 0.75), 'Stock D': (45, 0.3)}
new_dict = {}

for key, v in my_dict.items():
    firstVal, secondVal = v

    if firstVal > 30 and secondVal < 0.6:
        new_dict[key] = v

print new_dict

印刷品:

^{pr2}$

试试这个代码

my_dict = {'Stock A': (100, 0.5), 'Stock B': (20, 0.9), 'Stock C': (40, 0.75), 'Stock D': (45, 0.3)}

new={}
for (stock,values) in my_dict.items():
     first=values[0]
     second=values[1]
     if (first>30 and second<0.6):
          new[name]=(first,second)

希望有帮助

您可以使用dict comprehension创建新的dict。在

my_dict = {'Stock A': (100, 0.5), 'Stock B': (20, 0.9), 'Stock C': (40, 0.75), 'Stock D': (45, 0.3)}

new_dict = {k:v for k,v in my_dict.items() if v[0]>30 and v[1] <0.6}
print (new_dict)

结果:

^{pr2}$

相关问题 更多 >