Сделайте свою жизнь проще с помощью этих лучших советов и приемов Python
«Python - поистине замечательный язык. Когда кому-то приходит в голову хорошая идея, требуется около 1 минуты и пяти строк, чтобы запрограммировать что-то, что почти делает то, что вы хотите. Затем потребуется всего час, чтобы расширить сценарий до 300 строк, после чего он все еще будет делать почти то, что вы хотите ». - Джек Янсен
1. Выведите (N) строку раз
Вы, вероятно, используете циклы для печати N раз строки. Но я покажу вам профессиональный способ распечатать строку N раз в короткой строке кода.
string = "Python " ntimes = string * 3 print(ntimes) # Python Python Python
2. Возврат значений Mul из функции
Иногда нам нужно вернуть несколько значений из функции, и мы можем сделать это с помощью следующего трюка.
def Mulvalues(): return 1, 2, 3 a, b, c = Mulvalues() print(a, b, c) # 1 2 3
Когда вы возвращаете несколько значений (separated by commas)
из функции. Python автоматически сохраняет его в счетчике переменных, как и количество значений, возвращаемых функцией.
3. Путь к файлу импортированного модуля
Знаете ли вы, что мы можем получить путь к файлу любого импортированного модуля в Python? Это замечательная функция, когда вам нужно знать путь к модулю. Посмотрите следующий пример кода.
import os import json import tkinter #get path of imported modules print(os) print(tkinter) print(json)
Сначала вам нужно импортировать целевой модуль в ваш файл Python, а затем использовать функцию печати, которая принимает имя вашего целевого модуля в качестве аргумента. Проверьте вывод ниже.
#OUTPUT <module 'os' from 'C:\\Users\\Medium\\AppData\\Local\\Programs\\Python\\Python37\\lib\\os.py'> <module 'tkinter' from 'C:\\Users\\Medium\\AppData\\Local\\Programs\\Python\\Python37\\lib\\tkinter\\__init__.py'> <module 'json' from 'C:\\Users\\Medium\\AppData\\Local\\Programs\\Python\\Python37\\lib\\json\\__init__.py'>
4. Быстрый способ перевернуть строку
Могу поспорить, что любой из вас использует циклы, чтобы перевернуть строку. Но знаете ли вы, что есть более быстрый способ перевернуть строку с помощью одной строчки кода?
string1 = "Coder" string2 = "Algorithm" #reversing the strings print(string1[::-1]) # redoC print(string2[::-1]) # mhtiroglA
5. Множественное присвоение
Многие другие языки C ++, Java, JavaScript допускают только однократное присвоение переменной. Но Python позволяет выполнять несколько назначений, что очень полезно в разных случаях.
#mulitple assignments a, b, c = 1, 2, 3 print(a) # 1 print(b) # 2 print(c) # 3
6. Удаление дубликатов (быстрый способ)
Теперь вам больше не нужны циклы для удаления дубликатов из списка, вы можете сделать это с помощью встроенных функций быстрым и простым способом. Ознакомьтесь с приведенным ниже кодом.
lst1 = [1, 3, 3, 4, 5, 1] lst2 = ["A", "A", "B", "C", "D", "D"] newlst1= list(set(lst1)) newlst2= list(set(lst2)) print(newlst1) # [1, 3, 4, 5] print(newlst2) # ['C', 'D', 'A', 'B']
7. Форматированная строка
Обычно для форматирования строки используется унарный оператор «+». Проще говоря, когда вы хотите присоединить переменную к строке, вы используете унарный оператор (+). Но я покажу вам, как сделать это форматирование простым и быстрым способом.
name = "Haider" skill= "Python" #method 1 text = "My name is n and I'm a s Expert".format({"n":name , "s":skill}) print(text) #method 2 text = "My name is {} and I'm a {} Expert".format(name, skill) print(text) #method 2 text = f"My name is {name} and I'm a {skill} Expert" print(text)
8. Знать использование памяти объектами
Знаете ли вы, что встроенный модуль Python «sys» может сказать вам, сколько памяти потребляет объект в Python?
import sys val = 500 print(sys.getsizeof(val)) # 28
9. Инициализировать пустые контейнеры.
Вы можете инициализировать пустые контейнеры в Python. Проще говоря, вы можете объявить структуру данных без присвоения значений или их заполнения.
my_list = list() my_dict = dict() my_tuple = tuple() my_set = set() print(my_list) # [] print(my_dict) # {}
Примечание. Помните, что кортеж и набор неизменяемы
10. Перевернуть список
Теперь вам больше не нужна обратная функция, чтобы перевернуть какой-либо список. Вы можете сделать это с помощью простой одной строчки кода, не вызывая никаких встроенных функций. Посмотрите следующий пример кода.
my_list1 = [1, 2, 3, 4, 5, 100] my_list2 = ["A", "B", "C"] #reversing the list print(my_list1[::-1]) # [100, 5, 4, 3, 2, 1] print(my_list2[::-1]) # ['C', 'B', 'A']
11. Инвертировать словарь.
Я поделюсь примером кода для инвертирования словаря. Проще говоря, ключи и значения поменяются местами.
dict = {'x' : 1, 'y' : 2, 'z' : 3} new_dict = { value : key for key , value in dict.items()} print(new_dict) # {1: 'x', 2: 'y', 3: 'z'}
12. Расширенное множественное присвоение
Мы научились выполнять несколько заданий. В этом совете я покажу вам продвинутый способ выполнения нескольких заданий. Теперь мы также можем назначать значения списка.
a, *b, c, d = 3, 4, 5, 6, 7 print(a, b, c, d) # 3 [4, 5] 6 7
Первое значение сохраняется в переменной «a», а следующие 2 значения преобразуются в список и сохраняются в b из-за знака звездочки «*» в переменной «Б». Последние два хранятся в переменных «c» и «d».
13. Строка соединения (быстрый способ)
Вы, вероятно, используете циклы, чтобы перебирать список и объединять каждый элемент списка вместе. Но для этого требуется много строк кода. Вы можете сделать это быстро и легко, используя join()
метод.
#Bad way lst = ["I'm", "a", "Programmer"] text = "" for x in lst: text = text + x + " " print(text) # faster way text = " ".join(lst) print(text) # I'm a Programmer
14. Слияние двух диктовок в один
Я покажу вам простой совет по объединению двух словарей в один словарь. Посмотрите следующий пример кода.
a = { "a": 1, "b": 2} b = { "c": 3, "d": 4} c = {**a, **b} print(c) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
15. Измените предел рекурсии.
Этот совет будет полезен при работе с рекурсивной функцией и если вы не знаете, что Python установил ограничение рекурсии по умолчанию на 1000. Но вы можете изменить это ограничение.
import sys current_limit = sys.getrecursionlimit() print(current_limit) # 1000 set_limit = sys.setrecursionlimit(5000) print(sys.getrecursionlimit()) # 5000
16. Поиск нескольких префиксов
Возможно, вам придется использовать методы «startwith» и «endwith» для поиска префиксов в строке. И вы всегда передаете им один текст для поиска. Но я покажу, как можно передавать несколько текстов для поиска в строке.
string1 = "www.medium.com" if string1.startswith(("www","http")): print("True") if string1.endswith(("com","co.uk")): print("True")
17. Совет для операторов IF
Этот совет известен многим, но если вы о нем не знаете, то он будет вам полезен. посмотрите пример кода ниже.
a = [1, 2, 3] #Way 1 if a[0] == 1 or a[1] == 1 or a[2] == 1: print("Number is present in the list") #Faster Way if 1 in a: print("Number is present in the list")
Вместо сопоставления числа с каждым элементом в списке вы можете использовать оператор «in», чтобы сделать то же самое. Это наиболее точный и быстрый способ выполнить эту задачу.
Заключение
Что ж, надеюсь, ты узнаешь что-то новое. Я изучил эти советы и приемы, прочитав множество сообщений на StackOverflow, и трачу время на поиск новых советов и объяснение их вам на хороших и понятных примерах.
Если вы нашли эту статью полезной, нажмите кнопку ❤️ ниже и поделитесь статьей с друзьями.
Если вам нравятся эти статьи, вам также будут интересны следующие статьи.
Больше контента на plainenglish.io