@pasterh

Не могу решить задачу?

Надо посчитать количество дней с т температурой от 22 до 26 градусов включительно в каждом месяце отдельно.
may_2017 = [24, 26, 15, 10, 15, 19, 10, 1, 4, 7, 7, 7, 12, 14, 17, 8, 9, 19, 21, 22, 11, 15, 19, 23, 15, 21, 16, 13, 25, 17, 19]
may_2018 = [20, 27, 23, 18, 24, 16, 20, 24, 18, 15, 19, 25, 24, 26, 19, 24, 25, 21, 17, 11, 20, 21, 22, 23, 18, 20, 23, 18, 22, 23, 11]

def comfort_count(temperatures):
    for temp in temperatures:
        if temp >= 22 and temp <= 26:
              print (len(str(temp)))

comfort_count(may_2017)  # узнаем, что было в мае 2017 г.
comfort_count(may_2018)

Но я похоже что то делаю неправильно так как результом получаю не дни 13 и 5 а количество знаков 2.
Как правильно посчитать?
  • Вопрос задан
  • 553 просмотра
Решения вопроса 3
samodum
@samodum
Какой вопрос - такой и ответ
Ну так всё правильно. Количество дней же ты НЕ СЧИТАЕШЬ.
Ты, похоже, вообще не понимаешь что этот код делает.

may_2017 = [24, 26, 15, 10, 15, 19, 10, 1, 4, 7, 7, 7, 12, 14, 17, 8, 9, 19, 21, 22, 11, 15, 19, 23, 15, 21, 16, 13, 25, 17, 19]
may_2018 = [20, 27, 23, 18, 24, 16, 20, 24, 18, 15, 19, 25, 24, 26, 19, 24, 25, 21, 17, 11, 20, 21, 22, 23, 18, 20, 23, 18, 22, 23, 11]

def comfort_count(temperatures):
    k = 0
    for temp in temperatures:
        if temp >= 22 and temp <= 26:
              k = k + 1
    print(k)

comfort_count(may_2017)  
comfort_count(may_2018)
Ответ написан
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
in_data = {
    'may 2017': [24, 26, 15, 10, 15, 19, 10, 1, 4, 7, 7, 7, 12, 14, 17, 8, 9, 19, 21, 22, 11, 15, 19, 23, 15, 21, 16, 13, 25, 17, 19], 
    'may 2018': [20, 27, 23, 18, 24, 16, 20, 24, 18, 15, 19, 25, 24, 26, 19, 24, 25, 21, 17, 11, 20, 21, 22, 23, 18, 20, 23, 18, 22, 23, 11]
}

for im in in_data.keys():
    print(im, len(list(filter(lambda x: x>=22 and x <=26, in_data[im]))))


may 2017 5
may 2018 13
Ответ написан
@deliro
Агрессивное программирование
In [1]: comfort_count = lambda a: sum(22 <= t <= 26 for t in a)                                                         

In [2]: comfort_count([20, 27, 23, 18, 24, 16, 20, 24, 18, 15, 19, 25, 24, 26, 19, 24, 25, 21, 17, 11, 20, 21, 22, 23, 1
   ...: 8, 20, 23, 18, 22, 23, 11])                                                                                                               
Out[2]: 13
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
EQWILE Казань
от 80 000 до 110 000 ₽
AGIMA Москва
от 180 000 ₽
Level Travel Москва
До 160 000 ₽