![](/img/trans.png)
[英]In a list of lists divide each second element by each third element, python
[英]Is their any way that can divide each element of a list with each element of another list on python
list_1 = [10,12,16,20]
list_2 = [2,9,5,3,6]
division = []
for x in list_1 :
division.append (list_2/x)
print (division)
我試過了,但它給了我錯誤我想要的是我不想導入任何外部模塊 numpy 或其他
使用zip()
內置方法:
list_1 = [10,12,16,20]
list_2 = [2,9,5,3,6]
division = []
for e1, e2 in zip(list_1, list_2):
division.append(e2 / e1)
print(division)
印刷:
[0.2, 0.75, 0.3125, 0.15]
您可以通過以下方式使用map
:
list_1 = [10,12,16,20]
list_2 = [2,9,5,3,6]
division = list(map(lambda x,y:x/y,list_2,list_1))
print(division)
輸出:
[0.2, 0.75, 0.3125, 0.15]
map
接受函數和可迭代對象,我確實使用了匿名函數(lambda)接受兩個參數,這些參數返回其除法和list_2
和list_1
。 map
確實將該函數應用於彼此對應的元素並提供迭代器,我將其轉換為list
。
像這樣嘗試:
list_1 = [10,12,16,20]
list_2 = [2,9,5,3,6]
division = []
for x in list_1:
for y in list_2:
division.append(y/x)
print(division)
如果要將第一個列表的元素除以另一個列表中相同位置的元素,則可以在列表推導式中使用 zip:
listA = [10,12,16,20]
listB = [2,9,5,3,6]
divisions = [ a/b for a,b in zip(listA,listB) ]
print(divisions)
# [5.0, 1.3333333333333333, 3.2, 6.666666666666667]
如果您真的想將第一個列表的每個元素除以另一個列表的每個元素,請使用兩級列表理解:
divisions = [ a/b for a in listA for b in listB ]
print(divisions)
# [5.0, 1.1111111111111112, 2.0, 3.3333333333333335, 1.6666666666666667, 6.0, 1.3333333333333333, 2.4, 4.0, 2.0, 8.0, 1.7777777777777777, 3.2, 5.333333333333333, 2.6666666666666665, 10.0, 2.2222222222222223, 4.0, 6.666666666666667, 3.3333333333333335]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.