2016-10-06 2 views
1

Я очень новичок в программировании и пытаюсь использовать python для своих исследований. Мне нужно написать программу, которая сделает что-то вроде этого:Как перебирать список?

Если chelDays = [0, 1, 5, 7] За каждый раз t от 1 до 100 мне нужны t-chelDays для каждого члена списка chelDays если t> tchelDays. Например, я хотел бы получить следующие результаты: see image

Вот что я пробовал:

chelDays = [0, 1, 5, 7] 
while t <100: 
    if t > tj: 
     print (t, t-tj) 
    else: 
     print (t, " ") 
    t +=1 

Edit:

Наконец нашел свое решение: Tau = (0, 1, 5, 7) защиту tMinusTau (т, т): если т> т:
возвращение т-т еще: возвращение "" для t в диапазоне (1,100): print (t, tMinusTau (t, Tau [0]), tMinusTau (t, Tau 1), tMinusTau (t, Tau [2]), tMinusTau (t, Tau [3]))

+0

Попробуйте использовать 'for tj in range (len (chelDays) -1)' loop. –

+1

Итерация в python обычно включает цикл 'for'. Позже вы, возможно, захотите узнать «понимание». Циклы 'while' редко используются в Python, хотя они, очевидно, имеют свое место. –

+3

Но серьезно, в следующий раз, пожалуйста, попробуйте погулять по вашему вопросу. Вы бы нашли [официальные документы] (https://docs.python.org/2/tutorial/controlflow.html#for-statements). Это предотвратило бы загромождение SO. Кроме того, просто прочитайте [официальный учебник] (https://docs.python.org/3.5/tutorial/introduction.html). Это неплохо и поможет вам избежать этих основных вопросов. –

ответ

3

A for цикл - это питонический способ перебора элементов в коллекции. Вы можете получить такой же эффект для диапазона чисел, используя range Например, range(1,100) Являются ли цифры 1-99 (так как номер останова не включен)

Итак, если вы хотите итерации по t = 1 - t = 100, а затем проверить по каждому пункту в chelDays для каждого интервала t вы могли бы сделать следующее:

for t in range(1,101): 
    for tj in chelDays: 
     if t > tj: 
      #dostuff 
     else: 
      #dostuff 

Edit: Оглядываясь назад, было неясно, если вы хотите, чтобы проверить каждый пункт в chelDays или нет. Возможно, вы имели в виду общую стоимость всех дней. Если это так, то вы можете суммировать значения по sum(chelDays) например sum([1,2,3]) == 6 Или, если вы хотели количество элементов в этом списке, вы могли бы сделать len(chelDays) например len([504,123,234]) == 3

Наконец, большая вещь, которую вы можете сделать для себя и других прочитав свой код, постарайтесь, чтобы ваши имена переменных точно описывали, что они собой представляют. Переменные имена, такие как x, y, var и т. Д. Обычно не подходят. Конечно, есть контексты, такие как математические формулы, где xyt и тому подобное отлично.

+0

Наконец-то я нашел решение для своей проблемы. – DPdl