Python – 提取等对字典
有时,在使用Python字典时,我们可能会遇到需要创建一个以元组为键的现有字典的新字典的问题。我们希望仅在对的两个元素相等的情况下创建带有键的单例键字典。这可以在许多领域中应用。让我们讨论可以执行此任务的某些方式。
方法#1:使用循环
这是可以执行此任务的粗暴方式。在此,我们迭代元组字典的每个元素并比较相等以创建新字典。
# Python3 code to demonstrate working of
# Extract Equal Pair Dictionary
# Using loop
# initializing dictionary
test_dict = { (1, 1) : 4, (2, 3) : 6, (3, 3) : 7, (5, 2) : 10, (2, 2) : 11}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Extract Equal Pair Dictionary
# Using loops
res = dict()
for key, val in test_dict.items():
if key[0] == key[1]:
res[key[0]] = val
# printing result
print("The dictionary after equality testing : " + str(res))
输出 :
The original dictionary is : {(5, 2): 10, (2, 2): 11, (2, 3): 6, (1, 1): 4, (3, 3): 7}
The dictionary after equality testing : {1: 4, 2: 11, 3: 7}
方法#2:使用字典理解
这是可以执行此任务的另一种方式。在此我们使用字典理解而不是循环来提供速记。
# Python3 code to demonstrate working of
# Extract Equal Pair Dictionary
# Using dictionary comprehension
# initializing dictionary
test_dict = { (1, 1) : 4, (2, 3) : 6, (3, 3) : 7, (5, 2) : 10, (2, 2) : 11}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Extract Equal Pair Dictionary
# Using dictionary comprehension
res = {idx[0] : j for idx, j in test_dict.items() if idx[0] == idx[1]}
# printing result
print("The dictionary after equality testing : " + str(res))
输出 :
The original dictionary is : {(5, 2): 10, (2, 2): 11, (2, 3): 6, (1, 1): 4, (3, 3): 7}
The dictionary after equality testing : {1: 4, 2: 11, 3: 7}