Python循环双重打印

JJ2*_*015 6 python math python-2.7

使用下面的代码,我能够得到正确的答案,但重复两次.

例如,我只想要一个结果[1.2038, 1.206],但下面的代码打印出来[1.2038, 1.206, 1.2038, 1.206].谁知道我的代码出了什么问题?任何帮助将不胜感激.谢谢!

spot = [1.2020, 1.2040]
forwardSwap = [0.0018, 0.0020]
forwardOutright = []

for i in range(len(spot)):
    for i in range(len(forwardSwap)):
        forwardOutright.append(spot[i] + forwardSwap[i])

print forwardOutright
Run Code Online (Sandbox Code Playgroud)

Mos*_*oye 21

您应该zip而不是嵌套循环来同时迭代两个列表:

forwardOutright = [x+y for x, y in zip(spot, forwardSwap)]
Run Code Online (Sandbox Code Playgroud)


Aja*_*234 1

你只需要循环一次:

spot = [1.2020, 1.2040]
forwardSwap = [0.0018, 0.0020]
forwardOutright = []
for i in range(len(spot)):
    forwardOutright.append(forwardSwap[i]+spot[i])
Run Code Online (Sandbox Code Playgroud)

输出:

[1.2038, 1.206]
Run Code Online (Sandbox Code Playgroud)

  • 仅当两个数组具有相同长度的项目时,这才有效。如果forwardswap 只有 1 个元素怎么办? (3认同)