Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字典键从字符串更改为整数_Python_Python 2.7_Dictionary - Fatal编程技术网

Python 将字典键从字符串更改为整数

Python 将字典键从字符串更改为整数,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我正在尝试使用以下代码将字典的键从字符串转换为整数: b = {"1":0,"2":0,"3":0,"4":0,"5":0} for newkey in b: newkey[key] = int(newkey[key]) print b 但是,这会不断产生以下错误: Traceback (most recent call last): File "C:\Python27\counter2", line 22, in <module> newkey

我正在尝试使用以下代码将字典的键从字符串转换为整数:

b = {"1":0,"2":0,"3":0,"4":0,"5":0}

for newkey in b:
        newkey[key] = int(newkey[key])
print b   
但是,这会不断产生以下错误:

Traceback (most recent call last):
  File "C:\Python27\counter2", line 22, in <module>
    newkey[key] = int(newkey[key])
NameError: name 'key' is not defined
谁能告诉我我做错了什么

在此代码中感谢

for newkey in b:
        newkey[key] = int(newkey[key])
键以前从未定义过。也许你的意思是
newkey
?相反,简单地用字典理解重建字典,如下所示

>>> b = {"1": 0, "2": 0, "3": 0, "4": 0, "5": 0}
>>> {int(key):b[key] for key in b}
{1: 0, 2: 0, 3: 0, 4: 0, 5: 0}
>>> {int(key): value for key, value in b.iteritems()}
{1: 0, 2: 0, 3: 0, 4: 0, 5: 0}
或者你可以用,像这样

>>> b = {"1": 0, "2": 0, "3": 0, "4": 0, "5": 0}
>>> {int(key):b[key] for key in b}
{1: 0, 2: 0, 3: 0, 4: 0, 5: 0}
>>> {int(key): value for key, value in b.iteritems()}
{1: 0, 2: 0, 3: 0, 4: 0, 5: 0}

您从未定义过

你能行

new_b = {int(old_key): val for old_key, val in b.items()}
# int(old_key) will be the key in the new list

由于您正在循环字典
b
,因此可能需要执行以下操作

for newkey in b:
    b[newkey] = int(b[newkey])
print b 
但这毫无意义,它改变了“值”,而不是“键”

您可能希望这样做:

b = {int(key):value for key, value in b.items()}

您从未定义过
,正如错误所说的那样。也许您想要b:newkey=int(key)b[newkey]=b[key]
中的key