2017-03-27 54 views
-3

我對python語言相當陌生。我有兩個這樣的列表: ,我還沒有安裝numpy軟件包。在Python中劃分兩個數字列表(使用列表理解而不使用zip)

First_List = [10, 2, 5, 4, 100] 

Second_List = [5, 10, 20, 20, 25] 

我怎麼可以在Second_List元素鴻溝First_List每個元素? 輸出應該是:

Result = [2, 0.2, 0.2, 4] 

,我想在輸出列表,而不是一個數組中!我怎樣才能做到這一點 ? 我嘗試使用這樣的:

>>> First_List = [10, 2, 5, 4, 100] 
>>> Second_List = [5, 10, 20, 20, 25] 
>>> First_List/Second_List 

,但我得到這個錯誤:

Traceback (most recent call last): File "", line 1, in First_List/Second_List TypeError: unsupported operand type(s) for /: 'list' and 'list'

+3

'[X /對於x Y,Y拉鍊(First_List,Second_List)]'? –

+5

顯示你已經試過的東西,這樣我們可以指引你在正確的方向。如果你顯示你的代碼,社區將能夠真正幫助你解釋你正在犯的錯誤,這將是一個更好的學習課程,而不僅僅是給出答案。 – idjaw

+0

@NimaGeran請不要在評論中放置代碼。這是非常無益的。編輯您的問題並將代碼放在那裏,並使用格式化工具,以便其他讀者可以閱讀和理解。 – idjaw

回答

1

假設都First_ListSecond_List有相同數量的元素,你可以遍歷該指數範圍 任何名單和從其他列表的相應元素中分一個列表元素:

First_List = [10, 2, 5, 4, 100] 
Second_List = [5, 10, 20, 20, 25] 
result = [] 

# get last index for the lists for iteration 
end_index = len(First_List) 

for i in range(end_index): 
    result.append(First_List[i]/Second_List[i]) 
result 

輸出:

[2.0, 0.2, 0.25, 0.2, 4.0] 

這可以是全部使用列表理解

result = [First_List[i]/ Second_List[i] for i in range(len(First_List))] 

另外,也可以用ZIP和列表理解來完成(哪個更好)進行。 有關詳細信息,您可以檢查here

result = [a/b for a,b in zip(First_List,Second_List)] 
+1

Thanks @ open-source!我得到了答案。 –

+1

Python中直接遍歷列表中的項目通常更好,而不是通過索引間接循環。它更高效,而且代碼不那麼混亂。 –

+0

@ PM 2Ring謝謝,做了一個編輯添加它。 – 0p3n5ourcE