Pull to refresh

Comments 11

Вообще, список элементов разных типов скорей говорит о плохой архитектуре программы
Звучит логично, питон позволяет пихать в список что угодно, но это не значит, что стоит так делать.
Ну в общем случае да, но в данном None могут олицетворять, скажем, «пустые» элементы, своеобразные пропуски в данных или что-то в этом роде.
Мне, кстати, кажется, что вот такая вот запись куда читабельнее:
sorted(data, key=lambda x: x and x['a'] or float('inf'))

Чем авторская:
sorted(data, key=lambda x: float('inf') if x is None else x['a'])

Хотя кто-то и поспорил бы.
Я бы завернул такое в класс и определил там метод is_empty()
Если это не какие-нибудь промежуточные значения, которые появились только что и будут преобразованы или добавлены куда-то. Делать для них класс, специальный метод… это овер-инженеринг. С таким подходом нам нужно, к пирмеру, везде в коде создать отдельные типы для представления масс, размеров, объёмов, напряжений, зарядов… Да, это целесообразно внекоторых случаях, но н полезность от такого усложнения должна превысить разумный порог.
Если список будет в пару миллионов элементов то на этом производительность вашей программы и закончится. Создание экземпляра класса крайне ресурсоемкая операция как по RAM так и по CPU
Если задача решается в одну строчку плодить классы это глупость на мой взгляд.

не будет:


Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 05:52:31)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 0_0
0
>>>
Значит видимо у MacOS какие-то особенные REPL ибо и python2 и python3 ругнулись.
Sign up to leave a comment.