当循环中键的值等于键 Python 时,在 for 循环外访问键的值
access the value of the key outside of for loop when key's value in the loop equals the key Python
我有两个词典列表:
sftoap = [{'0060z000023GQYKAA4': 'ID-2522'},
{'0060z000023GQZNAA4': 'ID-2523'},
{'0060z000023GQidAAG': 'ID-2524'}]
opp_products = [{'Opportunity_ID__c': '0060z000023GQYKAA4', 'TotalPrice': 50408.22991509},
{'Opportunity_ID__c': '0060z000023GQZNAA4', 'TotalPrice': 50408.22991509},
{'Opportunity_ID__c': '0060z000023GQighTY', 'TotalPrice': 50408.22991509}]
我需要遍历 opp_products
并将 sftoap
字典列表中的键值分配给新变量。但仅当 'Opportunity_ID__c' 的值等于来自 sftoap
的键时
这是我尝试过的:
for index, opp_products_dict in enumerate(opp_products):
for opp_products_key, opp_products_value in opp_products_dict.items():
id = opp_products_dict["Opportunity_ID__c"]
ap_opp_id = sftoap[id]
给我一个错误,因为我显然需要遍历 sftoap
但不想有嵌套循环。我想要的输出是:
print(ap_opp_id)
ID-2522
ID-2524
如果您想避免嵌套循环,您可以在进入循环之前从 sftoap
创建一个字典,如下所示:
sftoap_dict = {}
for d in sftoap:
key, value = d.popitem()
sftoap_dict[key] = value
这样您就可以在原始循环中使用 ap_opp_id = sftoap_dict[id]
。
您可以将 sftoap 字典列表重新组织为字典以避免嵌套循环。
例如:
sftoap_dict = {}
for dicts in sftoap:
for key,val in dicts.items():
sftoap_dict[key]=val
接下来,您可以在代码的第二部分包含异常
for index, opp_products_dict in enumerate(opp_products):
for opp_products_key, opp_products_value in opp_products_dict.items():
idx = opp_products_dict["Opportunity_ID__c"]
try:
ap_opp_id = sftoap_dict[idx]
print(ap_opp_id)
except KeyError:
pass
我有两个词典列表:
sftoap = [{'0060z000023GQYKAA4': 'ID-2522'},
{'0060z000023GQZNAA4': 'ID-2523'},
{'0060z000023GQidAAG': 'ID-2524'}]
opp_products = [{'Opportunity_ID__c': '0060z000023GQYKAA4', 'TotalPrice': 50408.22991509},
{'Opportunity_ID__c': '0060z000023GQZNAA4', 'TotalPrice': 50408.22991509},
{'Opportunity_ID__c': '0060z000023GQighTY', 'TotalPrice': 50408.22991509}]
我需要遍历 opp_products
并将 sftoap
字典列表中的键值分配给新变量。但仅当 'Opportunity_ID__c' 的值等于来自 sftoap
这是我尝试过的:
for index, opp_products_dict in enumerate(opp_products):
for opp_products_key, opp_products_value in opp_products_dict.items():
id = opp_products_dict["Opportunity_ID__c"]
ap_opp_id = sftoap[id]
给我一个错误,因为我显然需要遍历 sftoap
但不想有嵌套循环。我想要的输出是:
print(ap_opp_id)
ID-2522
ID-2524
如果您想避免嵌套循环,您可以在进入循环之前从 sftoap
创建一个字典,如下所示:
sftoap_dict = {}
for d in sftoap:
key, value = d.popitem()
sftoap_dict[key] = value
这样您就可以在原始循环中使用 ap_opp_id = sftoap_dict[id]
。
您可以将 sftoap 字典列表重新组织为字典以避免嵌套循环。 例如:
sftoap_dict = {}
for dicts in sftoap:
for key,val in dicts.items():
sftoap_dict[key]=val
接下来,您可以在代码的第二部分包含异常
for index, opp_products_dict in enumerate(opp_products):
for opp_products_key, opp_products_value in opp_products_dict.items():
idx = opp_products_dict["Opportunity_ID__c"]
try:
ap_opp_id = sftoap_dict[idx]
print(ap_opp_id)
except KeyError:
pass