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)