我已将我的输入解析为此列表:
lst = ['6,3', '3,2', '9,6', '4,3']
如何将此字符串列表更改为浮动列表?虽然nw字符串的数字不是由a分隔的。但是,a,
之后我想在每个浮点数上加1。这样输出就变成了:
lst = [7.3, 4.2, 10.6, 5.4]
答案 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]