gpt4 book ai didi

python - 如何应用参数/for循环

转载 作者:太空宇宙 更新时间:2023-11-04 01:16:01 27 4
gpt4 key购买 nike

目前我有一个程序可以找到两个 XYZ 坐标的点积,我如何将它放入一个循环中,以便它沿着坐标列表向下移动并找到每个坐标相对于第一个坐标的点积。

import operator

vector1 = (int(l[0][0]),int(l[0][1]),int(l[0][2]))
vector2 = (int(l[1][0]),int(l[1][1]),int(l[1][2]))
dotProduct = reduce(operator.add, map(operator.mul, vector1, vector2))
print dotProduct

所以我希望第一个向量保持不变,但第二个向量发生变化,从 int(l[1][0]),int(l[1][1]),int(l[1 ][2]) 到下一个坐标 int(2[1][0]),int(2[1][1]),int(2[1][2] )

我是使用 Python 的初学者,所以我知道这可能是一个非常简单的答案,但我们将不胜感激任何反馈。

l=[]
with open("coordinate_test") as f:
line = f.next()
nat = int(line.split()[0])
print nat
f.next()# skip headers
for line in f:
if line.strip():
l.append(map(float,line.split()[1:])) # make all values floats
print l[0][0]


import operator
import numpy as np
vector1 = (int(l[0][0]),int(l[0][1]),int(l[0][2]))
vector2 = (int(l[a][0]),int(l[a][1]),int(l[a][2]))
print vector1
print vector2
x = vector1
y = vector2
vector3 = list(np.array(x) - np.array(y))
print vector3
dotProduct = reduce( operator.add, map( operator.mul, vector3, vector3))
print dotProduct

所以我有变量 nat,这是我希望点积循环运行的次数(导入运算符下的东西),但是我如何使它运行那么多次以及如何使变量“a "每次都增加一个,以及如何为该变量 "a"设置起始值。

谢谢。

最佳答案

import operator

vector1 = (1, 2, 3)

# get a list of vectors
vectors = [
(4, 5, 6),
(7, 8, 9)
]

# for loop through the vectors,
# assignig the current vector to vector2 in every iteration
for vector2 in vectors:
dotProduct = reduce(operator.add, map(operator.mul, vector1, vector2))
print dotProduct

使用您的lnata 变量:

vector1 = (int(l[0][0]), int(l[0][1]), int(l[0][2]))

for a in range(1, nat):
vector2 = (int(l[a][0]), int(l[a][1]), int(l[a][2]))
dotProduct = reduce(operator.add, map(operator.mul, vector1, vector2))
print(dotProduct)

关于python - 如何应用参数/for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24660923/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com