首页 > 解决方案 > 尝试循环显示更改但未应用它

问题描述

(使用 Python 3)我正在使用字典中的多个字典,并尝试运行 try except 循环以用浮点数替换单个字典中的所有数字。

我正在运行这样的东西,

for index, value in enumerate(dictionary):
    for stats in value:
        try:
            stats = float(stats)
            print(stats)
        except:
            print(stats)

它实际上向我展示了更改,但没有应用它们。如中,代码行返回我需要在字典中更改的内容,但是当我之后运行完整的字典时,数字仍然是字符串。

有人对此有任何想法吗?

标签: pythonpython-3.xdictionarypython-3.7

解决方案


在不确切知道您的字典是什么样子的情况下,我不得不做出一些假设。您遇到的问题是您没有直接修改字典中的值,而是创建一个新实例并对其进行修改。

my_dict = {1:["1", "2", "3"], 2:["4", "5", "6"]} #I assume your dict looks similar to this?

my_dict = {i:[float(x) for x in my_dict[i]] for i in my_dict} #using list comprehension to modify each value

方法 2 使用 for 循环

for i in my_dict:
    for index, v in enumerate(my_dict[i]):
        my_dict[i][index] = float(my_dict[i][index])

推荐阅读