python - 创建字典时“int”对象不可迭代

标签 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 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 新手并试图学习它。

最佳答案

您的代码有几个错误:

  1. 您需要迭代 range(len(key)),而不是整数 len(key)
  2. 您尚未初始化任何字典,或尝试更新字典。
  3. 您的函数返回 map_values(),但不需要递归算法。
  4. 您将变量分配给 keyvalue 数组的长度,然后在 for 循环中重新分配它们。
  5. 您不使用索引从keyvalue 数组中提取元素。

因此,您可以使用 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/

相关文章:

python - AWS Lambda 读取作为源代码上传的 zip 文件的内容

python - 使用 str.split 函数拆分数据框中的列

python - 使用另一个索引数组正确索引多维 Numpy 数组

python - 如果将数组乘以等于或大于 10**20 的数字,为什么 numpy 数组的 dtype 会自动更改为 'object'?

python - 从 Mac OSX 10.8 中删除预装的 python

python - AWS CLI - aws configure 命令有效凭证返回错误

python - Pandas 数据帧 : How to calculate the difference by first row and last row in group?

Python Numpy 平方均值计算(这是正确的方法吗)

python - Web 应用程序中的身份验证

python - 将空值添加到 Pandas 数据框