#codexample
Нумерованные списки
Задача нумерации элементов последовательности настолько распространена, что в Python есть соответствующая встроенная функция enumerate:
Для тех, кто уже знаком с enumerate, может оказаться новостью, что у функции есть второй аргумент, задающий начальное число:
Нумерованные списки
Задача нумерации элементов последовательности настолько распространена, что в 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)
Вы можете проверить отношения
наследования классов с помощью
встроенной функции
#codexample
наследования классов с помощью
встроенной функции
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]
Приведенные ниже методы сглаживают потенциально глубокий список с помощью рекурсии
#полезностьдня #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]