python 如何从特定线中找到坐标平均值?

dffbzjpn  于 2022-12-21  发布在  Python
关注(0)|答案(2)|浏览(150)

我有一个函数,我需要读取以短语“ABC”开头的每一行,并且对于每一个ABC行,都有跟在它后面的xyz坐标。我如何通过阅读正确的行而不是实际的ABC部分本身来获得整体的平均xyz坐标呢?
到目前为止,我有能力打印线,但我对如何实际采取他们和平均示例行感到困惑:“ABC 2.7826876194262695 5.6965460623956972 -2.4674016174576252”到目前为止的代码:

with open("filename",'r') as f:
    for line in f:
        if line.startswith("ABC"):
          print(line)
flseospp

flseospp1#

这个?(未测试)

with open("filename",'r') as f:
    N = 0
    X = 0
    Y = 0
    Z = 0
    for line in f:
        try:
            start, x, y, z = line.strip().split()
            if start == "ABC":
                N += 1
                X += float(x)
                Y += float(y)
                Z += float(z)
        except:
            pass
    X /= N
    Y /= N
    Z /= N
35g0bw71

35g0bw712#

你可以在空间上分裂,并采取一切在第一个元素之后。

sums = [0] * 3
points = 0
for line in f:
    if line.startswith("ABC "):
        points += 1
        for i, x in enumerate(line.split()[1:]):
            sums[i] += float(x)
avg = [s / points for s in sums]
print(avg)

相关问题