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

Pie*_*ter 2 python list

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

lst = ['6,3', '3,2', '9,6', '4,3']
Run Code Online (Sandbox Code Playgroud)

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

之后,我想为每个浮点数添加1.这样输出就变成了:

lst = [7.3, 4.2, 10.6, 5.4]
Run Code Online (Sandbox Code Playgroud)

Ffi*_*ydd 5

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

对此的列表理解将是这样的

from locale import atof

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

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

如果您不想使用,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]
Run Code Online (Sandbox Code Playgroud)

这个列表理解相当于

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

  • +1,您可以使用以下命令检查您的方法:`import locale; locale.setlocale(locale.LC_NUMERIC,'en_DK.UTF-8'); print locale.atof('3,141')` (2认同)