如何完成循环并打印循环值

时间:2015-11-18 09:18:20

标签: python python-2.7 python-3.x

我有以下数组:

   Nod= ['338', '299', '299', '300', '300', '335', '336', '314', '335', '336', '337', '338', '309', '337', '314', '309']

现在我必须编写一个代码,使它通过Nod []循环并将某些变量分配给前两个数字,如下所示:

  1. Node1 = 338
  2. Node2 = 299
  3. 在剩余集合中搜索Node2(即299)
  4. 并将相邻值分配给Node3,即Node3 = 300
  5. 检测所有使用的号码
  6. 循环在此处结束,从下一个循环开始,它应搜索Node3值并将其指定为Node1
  7. 继续循环,直到Nod = = 0

    并且代码的结果应该看起来像

    第一次循环

    Node1= 338
    Node2= 299
    Node3= 300
    

    在第二个循环中

    Node1= 300
    Node2=335
    Node3=336
    

    在第三循环中

    Node1=336
    Node2=314
    Node3=309
    

    第四

    Node1=309
    Node2=337
    Node3=338
    

    和循环结束

    我是编码和python的新手,请帮助我编写代码。我尝试过不同的循环,但无法弄清楚逻辑和代码。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

node= ['338', '299', '299', '300', '300', '335', '336', '314', '335', '336', '337', '338', '309', '337', '314', '309']
while(len(node)!=3):
    fst_element = node[0]
    snd_element = node[1]
    third_element = node[2:][node[2:].index(snd_element)+1]
    print "fst: %s\t2nd: %s\t3rd: %s"%(fst_element,snd_element,third_element)
    node = [x for x in node[2:] if x != fst_element]
    node = [x for x in node if x != snd_element]
    node = [x for x in node if x != third_element]
    node.insert(0,third_element)
print "last result: " + str(node) 

我想,上面就是你想要的。我认为最后一次迭代的结果是:

Node1=309
Node2=337
Node3=337 

根据您的算法,数字338已从第一次迭代中删除。

快乐学习python。