设置循环范围的三重循环重新排序问题

时间:2014-07-07 21:08:54

标签: python

嗨,伙计们,我想我会以错误的方式解决这个问题,最好的办法是什么?

到目前为止这是我的代码

  for d in dl:  
    for i in a:
      for j in dr:
        print i + " " + j + " " + d

这打印了i j和d

的所有可能组合

然而我想做的是d中的第一个元素打印出i中的第一个元素然后是j中的第一个元素,然后再次循环,同时仍然在d的第一个元素中打印出第二个元素i和j再次执行此操作,然后一旦完成打印出d的第2个元素并打印出i + j的第4个元素并执行此操作直到第6个元素

我该怎么做这样的循环

编辑确定对不起它甚至让我困惑的描述大声笑

例如

dl ={ test1, test2}
a = {a,b,c,d,e,f}
dr = {0,1,2,3,4,5}

我想要的是

 test1 a 0
 test1 b 1
 test1 c 2
 test2 d 3
 test2 e 4
 test2 f 5

2 个答案:

答案 0 :(得分:1)

对于您尝试获取的输出,您可能希望使用索引,而不是执行for x in y。这是我的建议:

for i in range(0,len(dl)):
  for j in range(0,3):
    a_elem = i*3 + j
    print dl[i] + " " + a[a_elem] + " " + str(dr[a_elem])

str()功能只是因为您的某个列表是int列表。如何将它们打印出来取决于每个列表中的元素类型。如果它是一个混合,将str()放在一切都是最安全的。

答案 1 :(得分:0)

这是你要找的吗?

for i in range(len(dl)):
  print dl[i] + " " + a[i] + " " + dr[i]