Полезные советы по Python, часть 2
В предыдущей заметке мы демонстрировали полезные кусочки кода, которые могут существенно сэкономить вам время при программировании на Python. Продолжаем!
1. Получение словаря:
"""returning None or default value, when key is not in dict""" d = 1, 'b': 2} print(d.get('c', 3))
2. Сортировка словаря по значению:
"""Sort a dictionary by its values with the built-in sorted() function and a 'key' argument.""" d = {'apple': 10, 'orange': 20, 'banana': 5, 'rotten tomato': 1} print(sorted(d.items(), key.lambda x: 41))) """Sort using operator.itemgetter as the sort key instead of a lambda""" from operator import itemgetter print(sorted(doitems(), key.itemgetter(1))) """Sort dint keys by value""" print(sorted(d, key=d.get))
3. Преобразуем список:
"""converts list to comma separated string""" items = ['foo', 'bar', 'xyz'] print (','.join(items)) """list of numbers to comma separated""" numbers = [2, 3, 5, 10] print (','.join(map(str, numbers))) """list of mix data""" data = [2, 'hello', 3, 3.4] print (','.join(map(str, data)))
4. Слияние диктов:
"""merge dict's""" D1 {'a': 1} d2 = {'b': 2} # python 3.5 print({**d1, **d2}) print(dict(d1.items() | d2.items())) d1.update(d2) print(d1)
5. Находим минимальный и максимальный индекс в списке:
"""Find Index of Min/Max Element.""" 1st = [40, 10, 20, 30] def minIndex(lst): return min(range(len(lst)), key=lst.__getitem__) def maxlndex(lst): return max(range(len(lst)), key=lst.__getitem__) print(minIndex(lst)) print(maxIndex(lst))
6. Удаляем дубликаты из списка:
"""remove duplicate items from list. note: does not preserve the original list order""" items = [2, 2, 3, 3, 1] newitems2 = list(set(items)) print(newitems2) """remove dups and keep order""" from collections import OrderedDict items = rfoo", "bar", "bar", "fool print(list(OrderedDict.fromkeys(items).keys()))
7. И кое-что для else:
"""else gets called when for loop does not reach break statement""" a = [1, 2, 3, 4, 5] for el in a: if el == 0: break else: print('did not break out of for loop')
Большинство трюков и советов взято из PyTricks и различных блогов. Первоисточник находится здесь.
На этом пока всё. Если хотите узнать больше, записывайтесь на курс «Разработчик Python». И оставляйте свои комментарии!