簡體   English   中英

他們有什么方法可以將列表的每個元素與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_2list_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM