将字符串列表转换为浮点数并添加1

时间:2014-12-01 09:56:13

标签: python list

我已将我的输入解析为此列表:

lst = ['6,3', '3,2', '9,6', '4,3']

如何将此字符串列表更改为浮动列表?虽然nw字符串的数字不是由a分隔的。但是,a,

之后我想在每个浮点数上加1。这样输出就变成了:

lst = [7.3, 4.2, 10.6, 5.4]

3 个答案:

答案 0 :(得分:5)

你可以使用locale.atof(string)这是一个设计用于将字符串转换为浮点数的函数,考虑到语言环境设置,考虑到在某些文化/语言中逗号用于生成小数点,而不是句点。

这样的list comprehension将是这样的

from locale import atof

a = ['6,3', '3,2', '9,6', '4,3']
b = [atof(i) + 1 for i in a]

不幸的是,我无法测试它是否与逗号一起使用,因为我的语言环境设置为使用句点。

如果您不想使用locale.atof,则下面的代码将通过将逗号转换为句点来执行类似的工作。您可以使用str.replace替换逗号。

a = ['6,3', '3,2', '9,6', '4,3']
b = [float(i.replace(',', '.')) + 1 for i in a]
# [7.3, 4.2, 10.6, 5.3]

此列表理解等同于

a = ['6,3', '3,2', '9,6', '4,3']
b = []
for i in a:
    j = float(i.replace(',', '.')) + 1
    b.append(j)

答案 1 :(得分:3)

怎么样:

l2 = [float(num.replace(',', '.')) + 1 for num in lst]

首先用字符串中的点替换逗号,然后转换为float并向结果添加1。对列表中的每个元素执行操作。

答案 2 :(得分:1)

使用列表理解:

lst = ['6,3', '3,2', '9,6', '4,3']
new_lst = [float(num.replace(',','.')) + 1 for num in lst]