给出了两个单独的示例词典:
fruit_type = {'apple': 'stonefruit', 'peach': 'stonefruit', 'pear': 'stonefruit','orange': 'citrus', 'lemon': 'citrus', 'tangerine': 'citrus'}
similar_fruit = {'apple': ['peach', 'pear'], 'peach': ['apple', 'pear'], 'pear': ['apple', 'peach'], 'orange': ['lemon', 'tangerine'], 'lemon': ['orange', 'tangerine'], 'tangerine': ['orange', 'lemon']}
根据每个键在另一个字典fruit_type
中的值,将它们与similar_fruit
字典中的值进行比较的最有效方法是什么?你知道吗
我有一个看似幼稚的工作实现:
same_type = False
for fruit in similiar_fruit:
for comparison in similiar_fruit[fruit]:
if fruit_type[fruit] == fruit_type[comparison]:
same_type = True
注意始终只有两种水果(核果、柑橘)可能会有帮助,第一本词典中的键与第二本词典中的键在相同的键(苹果、桃子、梨、橘子、柠檬、橘子)上排列,不一定是键的顺序。你知道吗
先谢谢你。你知道吗
然后将每个水果与每个相似的水果配对:
现在询问两个成员是否属于同一类型:
我不相信有任何其他方法可以简化这一点!但是,我将更改起始
same_type = True
,并进行如下比较:这样,一旦比较不正确,它就会使内部子句失败,以防止比较覆盖,并停止循环。你知道吗
另外,如果您只想为每个水果创建一个字典,并列出它们的相似之处,而不是从两个字典开始进行比较,那么我编写了一个代码来实现这一点:
similar_fruits
将成为所有水果的自动字典,以及它们相似的每个水果的列表。{'apple': ['peach', 'pear'], 'peach': ['apple', 'pear'], 'pear': ['apple', 'peach'], 'orange': ['lemon', 'tangerine'], 'lemon': ['orange', 'tangerine'], 'tangerine': ['orange', 'lemon']}
希望这有帮助! -奈特
相关问题 更多 >
编程相关推荐