gpt4 book ai didi

Python:返回对应于字典中给定键的所有值

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:48 24 4
gpt4 key购买 nike

我有以下字典,其中的键对应于它在 Rock Paper Scissors Lizard Spock 规则中击败的值。因此。 “剪刀”打败“布”和“蜥蜴”。

this_defeats_that = {'scissors': 'paper',
'paper': 'rock',
'rock': 'lizard',
'lizard': 'spock',
'spock': 'scissors',
'scissors': 'lizard',
'lizard': 'paper',
'paper': 'spock',
'spock': 'rock',
'rock': 'scissors'
}

但是,我发现当我

print this_defeats_that['scissors']

只打印'lizard'。进一步的调查表明,无论我如何构建字典,打印语句只会打印与给定键对应的最后一个值。

我需要的是打印所有相关值,以便

 # Example, this behavior should be consistent regardless of key.
print this_defeats_that['scissors']

将以任意顺序打印 'lizard' 和 'paper'。最好以列表形式返回。

所以我尝试了一个列表理解,

print [value for key, value in this_defeats_that.iteritems() if key == 'scissors']

但它也只返回与键对应的最后一个值,即“lizard”。我现在对如何进行一无所知,急需帮助。

最佳答案

您必须更改存储映射的方式。 python中的字典是一个key:value映射,key是唯一的。

考虑为每个唯一键制作一个值列表:

>>> this_defeats_that = {'scissors': ['paper', 'lizard'],
'paper': ['rock', 'spock'],
'lizard': ['spock', 'paper'],
'spock': ['scissors', 'rock'],
'rock': ['scissors', 'lizard']}
>>> this_defeats_that['scissors']
['paper', 'lizard']

关于Python:返回对应于字典中给定键的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18079087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com