如何在Python中将字符串转换为数字?

kab*_*bil 3 python string integer numbers converters

我有 str 形式的数字列表

li = ['1', '4', '8.6']
Run Code Online (Sandbox Code Playgroud)

如果我用int转换结果是[1, 4, 8]。如果我用float转换结果是[1.0, 4.0, 8.6]

我想将它们转换为[1, 4, 8.6]

我试过这个:

li = [1, 4, 8.6]
intli = list(map(lambda x: int(x),li))
floatli = list(map(lambda x: float(x),li))
print(intli)
print(floatli)

>> [1, 4, 8]
>> [1.0, 4.0, 8.6]
Run Code Online (Sandbox Code Playgroud)

小智 8

isdigit()如果返回,则将项目转换为整数True,否则转换为浮点数。这可以通过列表生成器来完成:

li = ['1', '4', '8.6']
lst = [int(x) if x.isdigit() else float(x) for x in li]
print(lst)
Run Code Online (Sandbox Code Playgroud)

要检查它是否确实有效,您可以使用另一个列表生成器检查类型:

types = [type(i) for i in lst]
print(types)
Run Code Online (Sandbox Code Playgroud)