Python ';int';对象在创建字典时不可编辑

Python ';int';对象在创建字典时不可编辑,python,pandas,numpy,dictionary,random,Python,Pandas,Numpy,Dictionary,Random,我正在尝试用python创建一个字典。但是,我想使用随机值创建字典。所需输出的格式应为{a':1,'b':2} import numpy as np import pandas as pd import random import string value = np.random.random(10) np.random.seed(42) key = list(np.random.choice(list(string.ascii_lowercase), 10)) key, value def

我正在尝试用python创建一个字典。但是,我想使用随机值创建字典。所需输出的格式应为{a':1,'b':2}

import numpy as np
import pandas as pd
import random
import string

value = np.random.random(10)
np.random.seed(42)
key = list(np.random.choice(list(string.ascii_lowercase), 10))
key, value

def map_values(key, value):
    i = len(key)
    j = len(value)
    for i in len(key):
        print('key[i]' +'value[j]')
        i = i+1
        j = j+1
    return map_values()

map_values(key, value)

但是,在运行上述代码时,我发现错误“int”对象不可编辑。有人能解释错误的原因并纠正代码吗?因为我是python新手,正在尝试学习它。

您的代码有几个错误:

  • 您需要迭代
    范围(len(key))
    ,而不是整数
    len(key)
  • 您尚未初始化任何词典,或尝试更新词典
  • 函数返回
    map\u values()
    ,但不需要递归算法
  • 将变量分配给
    数组的长度,然后在for循环中重新分配它们
  • 您不使用索引从
    数组中提取元素
  • 因此,您只需使用
    dict
    +
    zip

    np.random.seed(42)
    
    key = np.random.choice(list(string.ascii_lowercase), 10)
    value = np.random.random(10)
    
    res = dict(zip(key, value))
    
    {'g': 0.83244264080042174,
     'h': 0.020584494295802447,
     'k': 0.70807257779604549,
     'o': 0.6011150117432088,
     's': 0.18182496720710062,
     't': 0.86617614577493518,
     'u': 0.96990985216199432,
     'w': 0.18340450985343382,
     'z': 0.21233911067827616}
    

    fori-in-len(key):
    应该是
    fori-in-range(len(key)):
    或者
    xrange(len(key))
    如果你在python 2.in
    fori-in-len(key):
    len(key)
    返回一个
    int
    ,然后你尝试使用for循环迭代它,因此出现了错误。您可以为所需的输出指定已纠正的代码吗?