将 XML 字符串分成三个浮点数
Breaking an XML string into three floats
我正在解析 XML 包含字符串值的数据,space 分隔,表示浮点值:
<Pnts>
<P> 123.456 987.654 867.5309</P>
<P> 345.766 234.132 654.4564</P>
...
对于 P 项中的每一项,我需要将三个浮点值分配给三个变量。目前我正在这样做:
for p in pnts:
x, y, z = p.split(' ')
x = float(x)
y = float(y)
z = float(z)
有没有更直接(优雅)的方法来分配三个 float 变量,而不是先将它们设置为字符串然后重新定义它们?
您可以使用map()
函数:
for p in pnts:
x, y, z = map(float, p.split(' '))
您可以使用列表理解或生成器表达式:
x,y,z = [float(f) for f in p.split()]
或
x,y,z = (float(f) for f in p.split())
或者您可以一次性转换所有数据:
data = [[float(f) for f in p.split()] for p in pnts]
我正在解析 XML 包含字符串值的数据,space 分隔,表示浮点值:
<Pnts>
<P> 123.456 987.654 867.5309</P>
<P> 345.766 234.132 654.4564</P>
...
对于 P 项中的每一项,我需要将三个浮点值分配给三个变量。目前我正在这样做:
for p in pnts:
x, y, z = p.split(' ')
x = float(x)
y = float(y)
z = float(z)
有没有更直接(优雅)的方法来分配三个 float 变量,而不是先将它们设置为字符串然后重新定义它们?
您可以使用map()
函数:
for p in pnts:
x, y, z = map(float, p.split(' '))
您可以使用列表理解或生成器表达式:
x,y,z = [float(f) for f in p.split()]
或
x,y,z = (float(f) for f in p.split())
或者您可以一次性转换所有数据:
data = [[float(f) for f in p.split()] for p in pnts]