Ну, тут уже дело в том, что в python понятие генератора изначально использовалось так. Вообще, это конструктор списка, что не вполне отражает его назначение, и посему было использовано понятие генератора списков. Возможно в соотношение с типами объектов в python это неверно, но на русском куда больше отражает суть выполняемых действий.
Условия — достаточно известная вещь. Смысл поста в том, чтобы отразить некоторые малоизвестные моменты. Нет смысла переписывать документацию в один пост.
Насчет генератора словарей — это наиболее близкое определение. К тому же, оно было на многих ресурсах как генератор словарей. Согласитесь, очень похоже:
Python — красивый язык, и своих слов я обратно не возьму. Здесь дело не в том, какой язык красивее питона. Читать стандартные библиотеки можно вместо книг. Возможно, PHP и красивее в плане написания крупных проектов, но только вот это не делает python для меня более уродливым.
Простите, я в заголовке указал, что тут 30 советов для гуру-питонистов? Это список, которые многие не знают. Кому-то это будет интересно, а тем кому не интересно — я ничего не навязывал.
Про set формулировка неверная, вы правы.
Насчет finally. Не рассказал хотя бы потому, что блок finally выполняется в любом случае и если человек хоть мало-мальски читал про исключения — он это знает. Что об этом рассказывать? А вот else — это нечто неопределенное. Он выполняется только тогда, когда не было исключения и на первый взгляд непонятно, как он работает.
Вы правы — нет, не пробовал. Не было необходимости. Но я говорил не об этом. В python главное — простота, а не маты программиста-питониста, разбирающего ваш код. )
Я описал, что скобки вместо отступов — возможноe зло и ваш код становится нечитабельным (снова возвращаемся к PEP 8). По крайней мере, я не видел такой практики. Обычно так делать нельзя, но если очень хочется, то можно.
Насчет «симметрической разницы» — я опечатался, конечно же. Я имел ввиду симметрическую разность. А функции первого класса — это достаточно неплохой заголовок для функций первого класса. )
Как я уже подчеркнул выше, некоторые пункты являют собой unpythonic стиль, поэтому я бы брал их на заметку только после прочтения мануала по стилю написания кода Python — PEP 8.
1 пример — обмен проигнорирует скобки:
2 пример — объединение двух примеров из списка. Если объединять все примеры друг с другом, то скроллер превратится в точку.
Да, знаю про функции высшего порядка. Удобная вещь, вот только забыл про нее. Сейчас опубликую.
Если честно, collections и itertools — это темы отдельных постов. Это два ужасно интересных модуля и в одну строку их не описать.
Функция вернет «4»
Генератор списков:
Генератор словарей:
Про set формулировка неверная, вы правы.
Насчет finally. Не рассказал хотя бы потому, что блок finally выполняется в любом случае и если человек хоть мало-мальски читал про исключения — он это знает. Что об этом рассказывать? А вот else — это нечто неопределенное. Он выполняется только тогда, когда не было исключения и на первый взгляд непонятно, как он работает.