Библиотека питониста | Python, Django, Flask
40.6K subscribers
2.75K photos
75 videos
51 files
4.33K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.me/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
#codexample

Нумерованные списки
Задача нумерации элементов последовательности настолько распространена, что в Python есть соответствующая встроенная функция enumerate:

for i, item in enumerate(['a', 'b', 'c']):
print(i, item)

Для тех, кто уже знаком с enumerate, может оказаться новостью, что у функции есть второй аргумент, задающий начальное число:

for i, item in enumerate(['a', 'b', 'c'], 1):
print(i, item)
Вы можете проверить отношения
наследования классов с помощью
встроенной функции issubclass ():

#codexample

class BaseClass: pass

class SubClass(BaseClass): pass
issubclass(SubClass, BaseClass)
#True
issubclass(SubClass, object)
#True
issubclass(BaseClass, SubClass)
#False
Сглаживание в Python

Приведенные ниже методы сглаживают потенциально глубокий список с помощью рекурсии

#полезностьдня #codexample

def spread(arg):
ret = []
for i in arg:
if isinstance(i, list):
ret.extend(i)
else:
ret.append(i)
return ret

def deep_flatten(xs):
flat_list = []
[flat_list.extend(deep_flatten(x)) for x in xs] if isinstance(xs, list) else flat_list.append(xs)
return flat_list


deep_flatten([1, [2], [[3], 4], 5]) # [1,2,3,4,5]