Полезный питон

категория: Python
Очередная шпора, в которую буду периодически добавлять все полезные фичи python до тех пор пока все это наконец не запомню) А то порой пишешь одно и то же и создается впечатление, что можно бы как-то это писать лучше и быстрее - по этому все полезности питона, встроенные и внешние, нужно использовать. Предлагайте свои варианты полезных функций и модулей, которые можно было бы использовать в повседневной работе. all(iterable) - возвращает True, если все элементы iterable верны или он пустой any(iterable) - возвращает True, если хоть один элемент iterable верен, если он пуcтой - то False cmp(x,y) сравнивает два объекта и возвращает integer
cmp(5, 1)
1
cmp(5, 5)
0
cmp(1, 5)
-1
dict([arg]) - создает новый словарь из arg
l = [('Knights', 'Ni'), ('Monty', 'Python'), ('SPAM', 'SPAAAM')]
d = dict(l)
 {'Knights': 'Ni', 'Monty': 'Python', 'SPAM': 'SPAAAM'}
enumerate(iterable [,start=0]) - возвращает индекс и элемент коллекции
for i, item in enumerate(list):
    # so stuff with item, for example print it
    print i, item
isinstance(object, classinfo) - проверка на объекта на тип
if isinstance(obj, dict):
   # do stuff
elif isinstance(obj, list):
   # do other stuff
zip([iterable, ]) - возвращает список кортежей, где i-й кортеж содержит i-й элемен каждого из аргументов коллекции.
l1 = ['You gotta', 'the']
l2 = ['love', 'built-in']
out = zip(l1, l2)
[('You gotta', 'love'), ('the', 'built-in)]
map(function, iterable, ...) - применяет функцию к каждому элементу iterable
l = [1, 2, 3, 4]
 map(str, l)
['1', '2', '3', '4']
filter, lambda vs генераторы списков:
numbers = [1,2,3,4,5]
squares = map(lambda x: x*x, filter(lambda x: x < 4, numbers))
squares = [number*number for number in numbers if number < 4]
Еще немного магии:
x, y = 1, 2
x, y
(1, 2)
x, y = y, x
x, y
(2, 1)
x = [1, 2, 1, 3]
set(x)
{1, 2, 3}


blog comments powered by Disqus