Iterate over array twice (cartesian product) but consider only half the elements

前端 未结 3 1303
感动是毒
感动是毒 2021-01-14 05:18

I am trying to iterate over an array twice to have pairs of elements (e_i,e_j) but I only want the elements such that i < j.

Basically, what I want would look lik

3条回答
  •  北海茫月
    2021-01-14 06:00

    I would suggest the following:

    midIdx = len(mylist) / 2
    [ dosomehing(ele_i, ele_j) for ele_i, ele_j in 
        zip( mylist[0:midIdx], mylist[midIdx + 1:len(mylist)] ) ]
    

    For most interpreted language, for loop is not the best choice. Python provides list comprehension, which is more readable and efficient.

提交回复
热议问题