[英]i and j equivalent in python
我想知道python中C ++中“ i”和“ j”的等效項是什么。 我想做的是將一組數字中的每個數字與另一個數字相加(例如,在下面的示例中:[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)
但這僅在數字本身相等時才執行加法運算,這不是我想要的。 任何幫助,將不勝感激。 謝謝!
在python中執行此操作的方式是使用zip
:
for number1, number2 in zip(even, odd):
...
這是一個完整的列表理解示例:
both = [number1 + number2 for number1, number2 in zip(even, odd)]
我想至少有90%的時間會在其他類似C的語言中在循環中使用索引,您可以使用各種內置函數和/或python的for循環的“ for-each”特性在python中避免使用索引。
為什么你的不起作用:
在Python中,通常會遍歷一個列表,元組等等,而迭代結果是內容,而不是索引。
如果需要索引,可以遍歷range(len(...))
,也可以for index, item in enumerate(l)
,但是在大多數情況下,有更好的方法,例如mgilson的出色回答 。
zip是一種有用的方法。解決您的問題的另一種方法是使用map方法。
z = [x for x in map(sum,zip(even,odd))]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.