Python接收密钥错误:0

2024-06-26 13:59:17 发布

您现在位置:Python中文网/ 问答频道 /正文

Python新手。我收到了一个错误,不知道如何修复它。如您所见,我在函数中使用soem全局变量,并在程序开始时将dict初始化为{}。在

def bin_criticality():
    global gbv_bin_criticality, gbv_bin_element_ids, gbv_element_criticality
    gbv_bin_criticality = {}
    for (lv_key, lv_value) in gbv_bin_element_ids.items():
        print (lv_key, lv_value)
        lv_coil_ids = lv_value.split(',')
        for coil_id in lv_coil_ids:
            gbv_bin_criticality[lv_key] += int(gbv_element_criticality[coil_id])
    return()

----错误

^{pr2}$

Tags: key函数inididsforbinvalue
1条回答
网友
1楼 · 发布于 2024-06-26 13:59:17

gbv_bin_criticality是函数开头的空字典{},因此第一次尝试时:

gbv_bin_criticality[lv_key] += int(gbv_element_criticality[coil_id])

对于给定的值lv_key,它在字典中还不作为键存在,因此{}。在

您有三个选项,要么先选中(LBYL):

^{pr2}$

try并优雅地失败(EAFP):

try:
    gbv_bin_criticality[lv_key] += int(gbv_element_criticality[coil_id])
except KeyError:
    gbv_bin_criticality[lv_key] = int(gbv_element_criticality[coil_id])

或者使用^{},它将自动处理丢失的密钥,而不是普通的dict

from collections import defaultdict

gbv_bin_criticality = defaultdict(int)
...
gbv_bin_criticality[lv_key] += int(gbv_element_criticality[coil_id])

另外,我会将globals-make gbv_bin_element_ids和{}参数丢弃给函数,并在结尾处丢弃{}。在

相关问题 更多 >