我还有一本字典

maketh = {'n':['1', '2', '3'], 'g': ['0', '5', '6', '9'], 'ca': ['4', '8', '1', '5', '9', '0']}

我打算改成

maketh_new = {'n':[1, 2, 3], 'g': [0, 5, 6, 9], 'ca': [4, 8, 1, 5, 9, 0]}

数字在值中的顺序非常重要.因此,顺序应该保持不变

当我try 使用任何在线可用的方法进行更改时,总是会遇到以下错误:

TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

"如果有任何打字错误,请忽略……"

我自己写的一个 idea 可能是这样的:

maketh_new = dict()

for (key, values) in maketh.items():
    for find in len(values):
        maketh_new [key] = int(values[find])   

我试着想,如果我能以字符串的形式访问列表中的所有值元素,那么我可能可以将其输入int.但我得到一个错误:

'list' object cannot be interpreted as an integer 

所以如果有人能帮我找到解决办法,请做吧...

推荐答案

假设这些值中的所有元素都是数字,则可以对这些值执行以下操作:

maketh_new = {k: list(map(int, v)) for k, v in maketh.items()}

输出:

{'n': [1, 2, 3], 'g': [0, 5, 6, 9], 'ca': [4, 8, 1, 5, 9, 0]}

如果不是,可以使用str.isdigit进行更安全的键入:

maketh = {'n':['1', '2', 'a'],  # Note 'a' at last
          'g': ['0', '5', '6', '9'], 
          'ca': ['4', '8', '1', '5', '9', '0']}

maketh_new = {k: [int(i) if i.isdigit() else i for i in v] for k, v in maketh.items()}

输出:

{'n': [1, 2, 'a'], 'g': [0, 5, 6, 9], 'ca': [4, 8, 1, 5, 9, 0]}

Python相关问答推荐

如何从. text中进行pip安装跳过无法访问的库

FastAPI:使用APIRouter路由子模块功能

telegram 机器人API setMyName不起作用

如何将新的SQL服务器功能映射到SQL Alchemy的ORM

创建带有二维码的Flask应用程序,可重定向到特定端点

在Windows上启动新Python项目的正确步骤顺序

将numpy矩阵映射到字符串矩阵

在编写要Excel的数据透视框架时修复标题行

使用SciPy进行曲线匹配未能给出正确的匹配

比较两个数据帧并并排附加结果(获取性能警告)

替换字符串中的多个重叠子字符串

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

ThreadPoolExecutor和单个线程的超时

pandas:排序多级列

使用NeuralProphet绘制置信区间时出错

Asyncio:如何从子进程中读取stdout?

合并帧,但不按合并键排序

在pandas数据框中计算相对体积比指标,并添加指标值作为新列

Python—压缩叶 map html作为邮箱附件并通过sendgrid发送

如何在Great Table中处理inf和nans