Уведомления

Группа в Telegram: @pythonsu

#1 Май 14, 2013 18:24:02

Yott
От: Санкт-Петербург
Зарегистрирован: 2013-01-14
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Генераторы списков.

def funk(a):
return a >=  0
a = [10,-20,3,55,-35,0,7]
a = [ i for i in a if funk(i)]    # Удаляем  отрицательные элементы.
print(a)
Я не понимаю зачем два раза указывать счётчик в генераторе
a = [i for i

Офлайн

#2 Май 14, 2013 19:26:44

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Генераторы списков.

[что сделать с полученным for откуда и что взять]
В представленном случае делать ничего не нужно, потому значение передаётся без изменений. А для фильтрации более подходит filter.

Отредактировано Shaman (Май 14, 2013 19:27:43)

Офлайн

#3 Май 14, 2013 19:34:38

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Генераторы списков.

Yott
Я не понимаю зачем два раза указывать счётчик в генераторе
Вдруг тебе захочется что-то сделать с i, например каждое значение увеличить на 5:
a = [ i+5 for i in a if funk(i)]



Отредактировано plusplus (Май 14, 2013 19:35:16)

Офлайн

#4 Май 14, 2013 20:18:46

Yott
От: Санкт-Петербург
Зарегистрирован: 2013-01-14
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Генераторы списков.

Спасибо вам, помогли, и даже с примером.
Кстати, а функции zip,map,filter я как раз сегодня изучал.
Код в Питоне действительно компактнее и понятней чем скажем в Си, я про сортировку массивов.

Отредактировано Yott (Май 14, 2013 20:27:56)

Офлайн

#5 Май 15, 2013 23:39:27

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Генераторы списков.

Я извиняюсь за брюзжание, но зачем там функция func, это лишние затраты да и вообще, ведь логичнее сразу написать … if i >= 0

Отредактировано dimy44 (Май 15, 2013 23:40:09)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version