Python|字典中的优先键分配
有时,在使用字典时,我们有一个应用程序,我们需要在其中分配一个具有单个值的变量,该值来自任何给定的键,以优先级先出现者为准。让我们讨论可以执行此任务的某些方式。
方法#1:使用循环
可以使用循环以蛮力方式执行此任务。在这里,我们可以遍历字典键和优先级列表。如果我们找到了键,我们就用它的值破坏并分配变量。
# Python3 code to demonstrate working of
# Priority key assignment in dictionary
# Using loop
# Initialize dictionary
test_dict = {'gfg' : 6, 'is' : 4, 'for' : 2, 'CS' : 10}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Initialize priority keys
prio_list = ['best', 'gfg', 'CS']
# Using loop
# Priority key assignment in dictionary
res = None
for key in test_dict:
if key in prio_list :
res = test_dict[key]
break
# printing result
print("The variable value after assignment : " + str(res))
输出 :
The original dictionary : {'gfg': 6, 'is': 4, 'CS': 10, 'for': 2}
The variable value after assignment : 6
方法 #2:使用嵌套的get()
这个问题可以通过嵌套 get() 来获取优先级的值来解决。即使它提供了一种更简洁的单线替代方案来解决问题,但如果我们有更多的候选键来检查优先级,也不建议这样做。
# Python3 code to demonstrate working of
# Priority key assignment in dictionary
# Using nested get()
# Initialize dictionary
test_dict = {'gfg' : 6, 'is' : 4, 'for' : 2, 'CS' : 10}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Initialize priority keys
prio_list = ['best', 'gfg', 'CS']
# Using nested get()
# Priority key assignment in dictionary
res = test_dict.get(prio_list[0], test_dict.get(prio_list[1],
test_dict.get(prio_list[2])))
# printing result
print("The variable value after assignment : " + str(res))
输出 :
The original dictionary : {'gfg': 6, 'is': 4, 'CS': 10, 'for': 2}
The variable value after assignment : 6