我有以下数组:
Nod= ['338', '299', '299', '300', '300', '335', '336', '314', '335', '336', '337', '338', '309', '337', '314', '309']
现在我必须编写一个代码,使它通过Nod []循环并将某些变量分配给前两个数字,如下所示:
继续循环,直到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的新手,请帮助我编写代码。我尝试过不同的循环,但无法弄清楚逻辑和代码。 提前谢谢。
答案 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。