我想在Python中将字符串列表(温度值:['23.14C','19.91C']['54.04F','32.64F'])转换为float

2024-06-28 19:51:08 发布

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

我有两个以华氏度和摄氏度表示的温度列表,例如:(['23,6C', '16,5C', '38,4C',...]['19.6F', '72.3F', '81.75F', '18.02F'),数据类型是string,我想把它们转换成float,以便能够将它们计算成开尔文。字母可以删除。你知道吗

我已经尝试过用for循环删除字母,但是后来我变成了一个点或逗号前后每个值的字符串列表。 当我想直接转换它们时,它不起作用,因为值后面有字母。你知道吗

for pos in list_cel:
    for buchst in pos:
        if buchst == "C":
            buchst.replace("C", " ")
        else:
            nlist_cel.append(buchst)
print(nlist_cel)

#给我一个字符串列表,每个逗号后分开

['23','6',...]而不是[23,6 or 23.6]

输出应该如下所示

[23.6, 16.5, 38.4,] 
[19.6, 72.3, 81.75,]

Tags: 字符串inpos列表forstring字母float
3条回答

将逗号替换为圆点并将单元切片

lst=['23,6C', '16,5C', '38,4C',]
lst=[float(i[:-1].replace(',','.')) for i in lst]

输出

[23.6, 16.5, 38.4]

str.replacestr.strip一起使用列表理解

例如:

data = (['23,6C', '16,5C', '38,4C'], ['19.6F', '72.3F', '81.75F', '18.02F'])
print([[float(j.replace(",", ".").rstrip("CF")) for j in i] for i in data])

输出:

[[23.6, 16.5, 38.4], [19.6, 72.3, 81.75, 18.02]]

使用列表理解,more details

str.replace(old, new)-返回字符串的副本,其中所有出现的子字符串old替换为new

fahrenheit =['19.6F', '72.3F', '81.75F', '18.02F']

celsius = ['23,6C', '16,5C', '38,4C']

fahrenheit = [float(i.replace("F","")) for i in fahrenheit ]
celsius = [float(i.replace("C","").replace(",",".")) for i in celsius ]

print(fahrenheit)
print(celsius)

订单号:

[19.6, 72.3, 81.75, 18.02]
[23.6, 16.5, 38.4]

相关问题 更多 >