我有一个字符串需要基于进行拼接,
x = '1,0.5,3'
y = x.split(',')
print(y)
//Result
//['1','0.5','3']
我想分割字符串,但获取数字数组作为返回值。
预期收益
[1,0.5,3]
答案 0 :(得分:5)
x = '1,0.5,3'
l = [float(a) for a in x.split(',')]
结果:
[1,0.5,3]
使用float()
是因为其中有一个浮点。您可以使用int()
,但这会进行一些舍入
答案 1 :(得分:1)
如果您确实要求它们为整数而不是浮点数,则可以截断它们,例如:
>>> [int(float(e).__trunc__()) for e in x.split(",")]
[1, 0, 3]
答案 2 :(得分:0)
您必须转换每个项目:
y = [float(y) for y in x.split(',')] // Result: [1.0, 0.5, 3.0]
注意:由于出现“ 0.5”,因此直接使用int(y)
会给我这个错误:
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '0.5'
答案 3 :(得分:0)
与使用for a in
不同语法的答案相同:
y = list(map(float, x.split(',')))