Полезные советы по Python. Часть 1
Собрали несколько полезных советов по Python, которые могут вам пригодиться.
1. Обмен значениями:
"""pythonic way of value swapping""" a, b = 5, 10 print(a, b) a, b = b, a print(a, b)
2. Создание единой строки из всех элементов в списке:
a = ["Python", "is", "awesome"] print(“ ".join(a))
3. Поиск наиболее часто встречающихся значений в списке:
""" most frequent element in a list """ a = [1, 2, 3, 1, 2, 3, 2, 2, 4, 5, l] print(max(set(a),key = a.count)) """ using Counter from collections """ from collections import Counter cnt = Counter(a) print(cnt.most_common(3))
4. Проверка, являются ли два слова анаграммами:
from collections import Counter Counter(str1) == Counter(str2)
5. Разворачиваем строку:
"""reversing string with special case of slice step param""" a = 'abcdefghijklmnopqrstuvwxyz' print(a[::-1]) """iterating over string contents in reverse efficiently.""" for char in reversed(a): print(char) """reversing an integer through type conversion and slicing.""" num = 123456789 print(int(str(num)[::-1]))
6. Разворачиваем список:
"""reversing list with special case of slice step param""" a = [5, 4, 3, 2, 1] print(a[::-1]) """iterating over list contents in reverse efficiently.""" for ele in reversed(a): print(ele)
7. Следующий код поможет транспонировать 2d-массив:
"""transpose 2d array [[a,b], [c,d], [e,f]] -> [[a,c,e], [b,d,f]]""" original = [['a', 'b'], ['c', 'd'], ['e', 'f']] transposed = zip(*original) print( list( transposed))
8. А теперь цепное сравнение:
"""unchained comparison with all kind of operators""" b = 6 b = 6 print(4 < b < 7) print(1 == b < 20)
9. И условный вызов функции:
"""calling different functions with same arguments based on condition""" def product(a, b): return a * b def add(a, b): return a + b b = True print((product if b else add)(5, 7))
10. Ну и, конечно же, копирование списка:
"""a fast way to make a shallow copy of a list""" b = a b[0] = 10 """ both a and b will be[10,2, 3, 4, 5] """ b = a[:] b[0] = 10 """ only b will change to[10,2, 3, 4, 5] """ """copy list by typecasting method""" a = [1, 2, 3, 4, 5] print(list(a)) """using the list.copy() method (python3 only)""" a = [1, 2, 3, 4, 5] print(a.copy()) """copy nested lists using copy.deepcopy""" from copy import deepcopy 1 = [[1, 2], [3, 4]] 12 = deepcopy(l) print(12)
Коллеги, это первая из наших подборок. Второй блок полезных советов будет в следующей заметке, так что не пропустите! И, да, не забывайте задавать свои вопросы в комментариях!