使用Python中不同長度的列表中的元素執行數學運算

我有兩個長度不同的(列表列表)(data_List,dataTwo_List),我想在循環中調用“funcX”函數,該循環同時遍歷兩個列表,而不會使用data_List的大小產生“List Out of Index”錯誤。

def funcX(x1, x2, y1, y2):
    return math.sqrt((x1-y1)**2 + (x2-y2)**2)

data_List = [[3, 4], [3, 6], [3, 8], [4, 5], [4, 7], [5, 1], [5, 5], [7, 3], [7, 5], [8, 5]]
dataTwo_List = [[5, 5], [3, 6], [7, 3]]

funcX(data_List[0][0],dataTwo_List[0][0],data_List[0][1],dataTwo_List[0][1])
funcX(data_List[1][0],dataTwo_List[0][0],data_List[1][1],dataTwo_List[0][1])
funcX(data_List[2][0],dataTwo_List[0][0],data_List[2][1],dataTwo_List[0][1])
funcX(data_List[3][0],dataTwo_List[0][0],data_List[3][1],dataTwo_List[0][1])
...
...
funcX(data_List[0][0],dataTwo_List[1][0],data_List[0][1],dataTwo_List[1][1])
funcX(data_List[1][0],dataTwo_List[1][0],data_List[1][1],dataTwo_List[1][1])
funcX(data_List[2][0],dataTwo_List[1][0],data_List[2][1],dataTwo_List[1][1])
funcX(data_List[3][0],dataTwo_List[1][0],data_List[3][1],dataTwo_List[1][1])
...
...
? 最佳回答:

你有兩種選擇:

  1. zip(*iterables)函數。返回一個zip對象,它是一個元組迭代器,其中每個傳遞的迭代器中的第一個項配對在一起。如果傳遞的迭代器具有不同的長度,則項最少的迭代器決定新迭代器的長度。
  2. itertools.zip_longest(*iterables, fillvalue=None)函數。生成一個迭代器,從每個iterable聚合元素。如果iterables的長度不均勻,則缺少的值是filled-in和fillvalue。

無論選擇什么,結果都類似于:

import math

def funcX(x1, x2, y1, y2):
    return math.sqrt((x1-x2)**2 + (y1-y2)**2)

data_List = [[3, 4], [3, 6], [3, 8], [4, 5], [4, 7], [5, 1], [5, 5], [7, 3], [7, 5], [8, 5]]
dataTwo_List = [[5, 5], [3, 6], [7, 3]]

for ((x1, y1), (x2, y2)) in zip(data_List, dataTwo_List):
    funcX(x1, x2, y1, y2)

更新。很抱歉,我沒有看到你想要的結果,我想這就是你想要的:

import math 
from itertools import product


def funcX(x1, x2, y1, y2):
    return math.sqrt((x1-x2)**2 + (y1-y2)**2)


data_List = [[3, 4], [3, 6], [3, 8], [4, 5], [4, 7], [5, 1], [5, 5], [7, 3], [7, 5], [8, 5]]
dataTwo_List = [[5, 5], [3, 6], [7, 3]]


for ((x2, y2), (x1, y1)) in product(dataTwo_List, data_List):
    funcX(x1, x2, y1, y2)

product函數返回一個迭代器,該迭代器在兩個元素列表之間生成笛卡爾積。我將dataTwo_List放在第一位,以生成您想要的相同順序。

主站蜘蛛池模板: 无码人妻精品一区二区蜜桃AV| 2018高清国产一区二区三区| 丰满岳乱妇一区二区三区| 中文字幕一区二区三区在线不卡| 久久精品一区二区三区不卡| 国产成人一区二区动漫精品 | 国产av成人一区二区三区| 3d动漫精品啪啪一区二区中文| 无码精品一区二区三区| 久久国产精品亚洲一区二区| 风流老熟女一区二区三区| 国产91久久精品一区二区| 亚洲爆乳无码一区二区三区| 一区二区三区免费看| 日本一区二区三区久久| 久久毛片一区二区| 精品视频无码一区二区三区| 成人区精品一区二区不卡| 一区视频在线播放| 成人欧美一区二区三区在线视频| 99精品国产一区二区三区不卡| 中文字幕精品无码一区二区三区| 国产精品乱码一区二区三区| 国产一区二区三区日韩精品| 精品深夜AV无码一区二区| 白丝爆浆18禁一区二区三区 | 亚洲国产成人一区二区三区| 国产伦精品一区二区三区女| 福利一区二区在线| 亚洲欧洲精品一区二区三区| 精品中文字幕一区在线| 国产一区二区女内射| 国产精品乱码一区二区三| 三上悠亚日韩精品一区在线| 亚洲国产av一区二区三区丶| 国产一区二区三区内射高清| 色偷偷一区二区无码视频| 国产人妖视频一区二区破除| 91在线一区二区| 色婷婷AV一区二区三区浪潮| 国产亚洲福利精品一区二区|