Мне нужна помощь, чтобы изменить очень простой цикл, чтобы использовать индексы вместо имен переменных - PullRequest
0 голосов
/ 27 мая 2019

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

# find the coldest day in a range of daily temps
## input: 7 days worth of temps
temps = [7, 4, 1, -9, 18, 32, 10]

## output: lowest temp among the list
coolest = temps[0]

for temperature in temps:
    if temperature < coolest:
        coolest = temperature
print (coolest)

Я хочу изменить это так, чтобы мы начали с индекса 1, так как с помощьютекущая реализация вызывает избыточный шаг на первой итерации.

Большое спасибо, Майкл

Ответы [ 3 ]

3 голосов
/ 27 мая 2019

Вместо ручной итерации по списку вы можете использовать встроенную функцию min и срез строки :

temps = [7, 4, 1, -9, 18, 32, 10]
print(min(temps[1:]))

-9

1 голос
/ 27 мая 2019

Вы можете использовать нарезка здесь.

for temperature in temps[1:]:
    if temperature < coolest:
        coolest = temperature
0 голосов
/ 27 мая 2019

Очень короткий и предпочтительный способ найти минимальное значение температуры в списке - использование питонов min function

coolest = min(temps)

Если вы хотите написать цикл над списком с индексами, вы можете сделать это так (это то, к чему привыкли люди из других языков, таких как C, но не рекомендуется в python, если вам действительно не нужен индекс, который дело не в этом):

coolest = temps[0]

for i in range(1,len(temps)):
    if temps[i] < coolest:
        coolest = temps[i]
print (coolest)

index я начну с 1 до длины списка временных.

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

Поскольку вы можете видеть это очень часто, по моему мнению, было бы хорошо знать, как это работает, когда вы также знаете, почему и когда не следует его использовать. Рекомендую перейти по ссылке в комментарии ниже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...