我正在尝试在python中迭代2个以上的列表,并为每次迭代处理一个函数。 假设A = [40,30,25],B = [45,35,25]。 (但是,在我的实际应用中,A和B是句子数组)
我希望我的结果函数做这样的事情:
For A[1] & B[1]:
print("Sum: ", A[1] + B[1])
For A[1] & B[2]:
print("Sum: ", A[1] + B[2])
For A[1] & B[3]:
print("Sum: ", A[1] + B[3])
For A[2] & B[1]:
print("Sum: ", A[2] + B[1])
For A[2] & B[2]:
print("Sum: ", A[2] + B[2])
For A[2] & B[3]:
print("Sum: ", A[2] + B[3])
For A[3] & B[1]:
print("Sum: ", A[3] + B[1])
For A[3] & B[2]:
print("Sum: ", A[3] + B[2])
For A[3] & B[3]:
print("Sum: ", A[3] + B[2])
我确实知道这本质上是一个嵌套的for循环,但是我似乎无法完全按照我现在想要的方式运行它。通过我自己的研究,似乎我需要使用itertools zip函数来正确处理。
我当前的代码如下:
for x,y in itertools.zip_longest(lst1, lst2, fillvalue=None):
print("X: ",x, "\tY: ",y, "\nZ: ", nlp(x).similarity(nlp(y)))
感谢您的帮助! 谢谢。
答案 0 :(得分:1)
您不需要使用用户itertools。 @coldpseed的评论是一个很好的简洁答案。将其编写为更扩展的外观如下:
for x in A:
for y in B:
print("X: ",x, "\tY: ",y, "\nZ: ", nlp(x).similarity(nlp(y)))
或交替使用索引
for i in range (0, len(A)):
for j in range (0, len(B)):
x = A[i]
y = B[j]
print("X: ",x, "\tY: ",y, "\nZ: ", nlp(x).similarity(nlp(y)))