Iterate Over Array Twice (cartesian Product) But Consider Only Half The Elements
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 like this is C-lik
Solution 1:
Just use itertools.combinations(my_list, 2).
Solution 2:
Can't you just use the range function and go with:
vect = [...]
for i in range(0, len(vect)):
for j in range(i+1, len(vect)):
do_something()
Solution 3:
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.
Post a Comment for "Iterate Over Array Twice (cartesian Product) But Consider Only Half The Elements"