我正在尝试用 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 新手并试图学习它。
最佳答案
您的代码有几个错误:
- 您需要迭代
range(len(key))
,而不是整数len(key)
。 - 您尚未初始化任何字典,或尝试更新字典。
- 您的函数返回
map_values()
,但不需要递归算法。 - 您将变量分配给
key
和value
数组的长度,然后在 for 循环中重新分配它们。 - 您不使用索引从
key
和value
数组中提取元素。
因此,您可以使用 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}
关于python - 创建字典时“int”对象不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51194652/