📜  Python|字典中的优先键分配

📅  最后修改于: 2022-05-13 01:54:59.438000             🧑  作者: Mango

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