将 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]