将字典的python值从列表转换为浮点值

2024-06-11 09:40:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我通常用另一种语言编程,但目前需要python。我想将这个python字典中的字符串转换为float,但是我在网上读到的技巧并没有像我希望的那样工作

example= dict({'Baker': '16,765',
 'Benton': '93,590',
 'Clackamas': '419,425',
 'Clatsop': '39,200',
 'Columbia': '51,900',
 'Coos': '63,275'})

以下结果仅取第一个整数

for key in example.keys():
    example[key] = [float(example[key][0]),float(example[key][1])]
example

Out[]: 
{'Baker': [1.0, 6.0],
 'Benton': [9.0, 3.0],
 'Clackamas': [4.0, 1.0],
 'Clatsop': [3.0, 9.0],
 'Columbia': [5.0, 1.0],
 'Coos': [6.0, 3.0]}

下面仍然是一个字符串

{k:(map(float, example[k])) for k in example}
example

Out[]: 
{'Baker': '16,765',
 'Benton': '93,590',
 'Clackamas': '419,425',
 'Clatsop': '39,200',
 'Columbia': '51,900',
 'Coos': '63,275'}

我希望你能帮忙。我在用Python3。谢谢


Tags: key字符串in语言forexample编程float
3条回答

如果只需要int值而不是字符串,则只需要以下内容:

example = {'Baker': '16,765',
 'Benton': '93,590',
 'Clackamas': '419,425',
 'Clatsop': '39,200',
 'Columbia': '51,900',
 'Coos': '63,275'}

for key in example:
    s = example[key]
    example[key] = [int(item) for item in s.split(',')]

print(example)

输出:

{'Baker': [16, 765], 
'Benton': [93, 590], 
'Clackamas': [419, 425], 
'Clatsop': [39, 200], 
'Columbia': [51, 900], 
'Coos': [63, 275]}

或者:[float(item) for item in s.split(',')]将使每个值成为float

你犯了一些错误。使用花括号,键和值已经定义了dict。您不需要再次调用dict()。然后,您可以使用dict理解,也可以使用map函数,但这两个函数都不需要。最后,必须将逗号替换为点,以使转换工作正常

example = {
    'Baker': '16,765',
    'Benton': '93,590',
    'Clackamas': '419,425',
    'Clatsop': '39,200',
    'Columbia': '51,900',
    'Coos': '63,275'
}

in_float = {k: float(i.replace(',', '.')) for k, i in example.items()}
print(in_float)

您可以使用一个漂亮的单衬里:

example = {
    'Baker': '16,765',
    'Benton': '93,590',
    'Clackamas': '419,425',
    'Clatsop': '39,200',
    'Columbia': '51,900',
    'Coos': '63,275'
}

new_dict = {k: [float(i) for i in v.split(',')]
            for k, v in example.items()}

# pretty print the output
from pprint import pprint
pprint(new_dict)

相关问题 更多 >