gpt4 book ai didi

python - 将包含浮点值的字典写入文件: TypeError: 'float' object is not iterable

转载 作者:行者123 更新时间:2023-11-30 22:45:05 25 4
gpt4 key购买 nike

我正在尝试编写一个包含浮点值的字典,例如以下格式:

{'11': 0.5, '13': 1.0, '12': 0.5, -1: 3, '14': 0.0}

我正在尝试将字典写入 csv 文件,格式为:

11,0.5
13,1.0
12,0.5
...

我定义了一个函数,如下所示,它总是出现“Float object not interable”的错误。

def writeDict_test(r, filename):    
r"""
r: dictionary object: {'1':0.9, '2':0.6,'3':0.5,...}
filename: include path and .csv file. e.g. "C:\Users\results.csv"
"""
with open(filename, "a") as input_file:
for k, v in r.items():
for t in v:
line = "%s,%s" % ((k,) + t)
print(line, file=input_file)

当字典包含整数作为值时,上述方法效果很好。我正在使用Python 3.5。谁能向我解释原因并告诉我如何实现这一目标?非常感谢。

最佳答案

你不需要内部循环,如果你的值只包含一个元素,你可以像这样使用 pop() :

my_dict = {'1':{'0.9'}, '2':{'0.6'},'3':{'0.5'}}

with open(filename, 'w') as f:
for k, v in my_dict.items():
f.write('{},{}\n'.format(k, v.pop()))

如果您不希望更改原始字典,可以使用 list() 将集合转换为如下列表:

with open(filename, 'w') as f:
for k, v in my_dict.items():
f.write('{},{}\n'.format(k, list(v)[0]))

编辑:

使用新的输入,它变得更加简单,因为您只需编写 (key, value) 对,如下所示:

my_dict = {'11': 0.5, '13': 1.0, '12': 0.5, -1: 3, '14': 0.0}

with open(filename, 'w') as f:
for k, v in my_dict.items():
f.write('{},{}\n'.format(k, v))

关于python - 将包含浮点值的字典写入文件: TypeError: 'float' object is not iterable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41304850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com