2015-11-18 1 views
0

У меня есть следующий массив:как пройти через петлю и распечатайте значения циклического

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

Теперь я должен написать код таким образом, что он перебирает Нод [] и назначить определенные переменные для первых двух чисел , как и на следующие:

  1. Node1 = 338
  2. Node2 = 299
  3. Поиск Node2 (т.е. 299) в remaing устанавливает
  4. Назначайте прилегающее значение node3 т.е. node3 = 300
  5. Detele всех номеров, которые используются
  6. Loop заканчивается здесь и со следующим циклом он должен искать значение node3 и назначить его в качестве Node1

Продолжить петлю недо 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 

и цикл заканчивается здесь

Я очень новой для кодирования и питона, пожалуйста помогите мне с написанием кода. Я пробовал с разными циклами, но не смог понять логику и код. Спасибо заранее.

+1

Для меня, по вашему алгоритму, вы делаете вещи сложными. Не могли бы вы поделиться тем, что вы на самом деле пытаетесь достичь, наконец? –

+0

Я упомянул, что под (результат кода должен выглядеть так: :) Мне просто нужны три разных значения каждый раз, когда он проходит через первый цикл Node1 = 338 Node2 = 299 Node3 = 300 –

+0

Почему он заканчивается на '338'? связан ли он с началом – The6thSense

ответ

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.

+0

Привет, в Loop есть два 338s, и только число в четном положении (например, Zero posotion) должно быть удалено –

+0

Тогда u должен иметь возможность модифицировать код, чтобы он работал как то, что вы хотите. Stackoverflow не является услугой кодирования – minhhn2910

Смежные вопросы