📜  Python - 在字典中查找具有特定后缀的键

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

Python - 在字典中查找具有特定后缀的键

有时,在使用字典时,我们可能会遇到一个问题,即我们需要找到对键有一些约束的字典项。一个这样的约束可以是键的后缀匹配。让我们讨论可以执行此任务的某些方式。

方法 #1:使用字典理解 + endswith()
上述两种方法的组合可用于执行此特定任务。在此,字典理解完成字典构造的基本任务,endswith() 执行检查以特定后缀开头的键的实用任务。

# Python3 code to demonstrate working of
# Keys with specific suffix in Dictionary
# Using dictionary comprehension + endswith()
  
# Initialize dictionary
test_dict = {'all' : 4, 'geeks' : 5, 'are' : 8, 'freaks' : 10}
  
# printing original dictionary
print("The original dictionary : " + str(test_dict))
  
# Initialize suffix
test_suf = 'ks'
  
# Using dictionary comprehension + endswith()
# Keys with specific suffix in Dictionary
res = {key:val for key, val in test_dict.items() if key.endswith(test_suf)}
  
# printing result 
print("Filtered dictionary keys are : " + str(res))
输出 :
The original dictionary : {'geeks': 5, 'freaks': 10, 'are': 8, 'all': 4}
Filtered dictionary keys are : {'geeks': 5, 'freaks': 10}

方法 #2:使用map() + filter() + items() + endswith()
也可以使用上述功能的组合来执行此特定任务。 map函数将 endwith() 的过滤逻辑与 items() 提取的每个字典的项目联系起来。

# Python3 code to demonstrate working of
# Keys with specific suffix in Dictionary
# Using map() + filter() + items() + endswith()
  
# Initialize dictionary
test_dict = {'all' : 4, 'geeks' : 5, 'are' : 8, 'freaks' : 10}
  
# printing original dictionary
print("The original dictionary : " + str(test_dict))
  
# Initialize suffix 
test_suf = 'ks'
  
# Using map() + filter() + items() + endswith()
# Keys with specific suffix in Dictionary
res = dict(filter(lambda item: item[0].endswith(test_suf), test_dict.items()))
  
# printing result 
print("Filtered dictionary keys are : " + str(res))
输出 :
The original dictionary : {'geeks': 5, 'freaks': 10, 'are': 8, 'all': 4}
Filtered dictionary keys are : {'geeks': 5, 'freaks': 10}