for python中的循环(简单)

Jan*_*aml 3 python iteration indexing loops for-loop

我有一个非常简单的问题,我很难与:)

我需要在python中以下三角矩阵的方式迭代元组列表


python代码

dataset = #list of truples

for i, left in enumerate(dataset):
  for j, right in enumerate(dataset):
    if j <= i : continue    #fixme there should be a better way
    foo(left,right)
Run Code Online (Sandbox Code Playgroud)

目标伪代码

for( i=0; i<size; i++ )
  for( j=i; j<size; j++ )
    foo(data[i],data[j])
Run Code Online (Sandbox Code Playgroud)

非常非常感谢你 :)

Cos*_*cea 5

基于伪代码,这应该是这样的:

for i in range(0, len(data)):   
  for j in range(i, len(data)):
    foo(data[i],data[j])
Run Code Online (Sandbox Code Playgroud)

你也可以用一个班轮做到这一点:

[foo(data[i],data[j]) for i in range(0, len(data)) for j in range(i, len(data)]
Run Code Online (Sandbox Code Playgroud)