我和j等效于python

时间:2013-12-18 06:14:16

标签: python for-loop

我想知道C ++中的“i”和“j”等价于python中。我想要做的是将一组中的每个数字添加到另一组中的相应一个(即在下面的示例中:[2 + 1],[4 + 3],[6 + 5])我正在尝试自学离开互联网的python,我找不到怎么做。 [以下示例不起作用。]

even = [2,4,6]
odd = [1,3,5]
both = []
for i in range even[]:
    for j in range odd[]:
        if(i==j):
            both.append(even[i] + odd[j])
print(both)

我试过这样做:

for number1 in even:
    for number2 in odd:
        if(number1==number2):
            both.append(number + number2)

但是如果数字本身相等,这只会执行加法,这不是我想要的。任何帮助,将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:7)

在python中执行此操作的方法是使用zip

for number1, number2 in zip(even, odd):
    ...

这是一个包含列表理解的完整示例:

both = [number1 + number2 for number1, number2 in zip(even, odd)]

我猜想至少90%的时间你会在其他类C语言的循环中使用索引,你可以在python中使用各种内置和/或“for-each”性质避免它python的for循环。

答案 1 :(得分:1)

为什么你的工作不起作用:

在Python中,您通常迭代一个列表,元组,等等,迭代结果是内容,而不是索引。

如果您需要索引,可以迭代range(len(...)),或者可以for index, item in enumerate(l),但在大多数情况下,有更好的方法,例如the excellent answer by mgilson

答案 2 :(得分:0)

zip是一种有用的方法。另一种解决问题的方法是使用map方法。

z = [x for x in map(sum,zip(even,odd))]