【问题标题】:For loop in python (Simple)python中的for循环(简单)
【发布时间】:2014-01-15 07:50:44
【问题描述】:

我有一个非常简单的问题要解决:)

我需要在 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)

目标伪代码

for( i=0; i<size; i++ )
  for( j=i; j<size; j++ )
    foo(data[i],data[j])

非常感谢你:)

【问题讨论】:

  • 你的目标伪代码看起来很像“C”。
  • 我是一名“语言冲浪者”,是的,我多次使用 C 和 Java。所以我的“伪编码”概念是偏见。感谢您指出这一点:)

标签: python loops for-loop indexing iteration


【解决方案1】:

根据伪代码应该是这样的:

for i in range(0, len(data)):   
  for j in range(i, len(data)):
    foo(data[i],data[j])

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

[foo(data[i],data[j]) for i in range(0, len(data)) for j in range(i, len(data)]

【讨论】:

    【解决方案2】:

    这是使用itertools的好地方。

    import itertools
    
    for (left,right) in itertools.combinations(data,2):
        foo(left,right)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-18
      • 2016-12-15
      • 2015-12-31
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多