Коллекция полезных фрагментов для решения ваших повседневных проблем, связанных с программированием.

В этой статье я покажу вам 12 отличных сниппетов Python, чтобы кодировать лучше и умнее без написания длинного кода для решения проблем. Итак, не теряя времени, приступим.

Все в этой стране должны научиться программировать компьютер... потому что это учит думать

- Стив Джобс

1. Регулярное выражение

Регулярные выражения — лучший метод в Python для сопоставления с шаблоном, поиска и замены строки, проверки строки и т. д. Теперь вам не нужно использовать циклы и списки для такого типа работы.

Ознакомьтесь со следующим примером кода фрагмента регулярного выражения для проверки формата электронной почты ниже.

# Regular Expression Check Mail
import re
def Check_Mail(email):
    pattern = re.compile(r'([A-Za-z0-9]+[.-_])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\.[A-Z|a-z]{2,})+')
    if re.fullmatch(pattern, email):
        print("valid")
    else:
        print("Invalid")
Check_Mail("[email protected]") #valid
Check_Mail("[email protected]")  #Invalid
Check_Mail("[email protected]") # Invalid

2. Профессиональная нарезка

Этот простой фрагмент кода поможет вам нарезать список, как Pro. Посмотрите приведенный ниже пример кода.

# Pro Slicing
# list[start:end:step]
mylist = [1, 2, 3, 5, 5, 6, 7, 8, 9, 12]
mail ="[email protected]"
print(mylist[4:-3]) # 5 6 7
print(mail[8 : 14]) # medium




3. Обмен без Temp

Используете ли вы переменную Temp для замены двух данных, чем в Python, вам не нужно ее использовать? В этом фрагменте я покажу вам, как поменять местами две переменные данных, не используя временную переменную. Проверьте код ниже.

# Swap without Temp
i = 134
j = 431
[i, j] = [j, i]
print(i) #431
print(j) #134

4. Магия фа-струны

Вероятно, вы используете метод format() или метод «%» для форматирования переменной в строке. Этот фрагмент кода познакомит вас с F-строкой, которая намного лучше, чем любой другой формат. Взгляните на пример кода ниже.

# Magic of f-String
# Normal Method
name = "Codedev"
lang = "Python"
data = "{} is writing article on {}".format(name, lang)
print(data)
# Pro Method with f-string
data = f"{name} is writing article on {lang}"
print(data

5. Получить индекс

Теперь вам больше не нужен цикл, чтобы найти индекс конкретного элемента. Вы можете сделать это, используя метод index() в списке. Проверьте код ниже.

# Get Index
x = [10 ,20, 30, 40, 50]
print(x.index(10)) # 0 
print(x.index(30)) # 4
print(x.index(50)) # 2

6. Сортировка списка на основе другого списка

Этот фрагмент кода покажет вам, как сортировать список на основе другого списка. Этот фрагмент кода удобен, когда вам нужно отсортировать по нужному месту размещения.

# Sort List based on another List
list1 =  ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m"]
list2 = [ 0, 1, 1, 1, 2, 2, 0, 1, 1, 3, 4]
C = [x for _, x in sorted(zip(list2, list1), key=lambda pair: pair[0])]
print(C) # ['a', 'g', 'b', 'c', 'd', 'h', 'i', 'e', 'f', 'j', 'k']

7. Инвертировать словарь

Теперь вам не нужны циклы для инвертирования любого словаря. Этот код фрагмента инвертирует словарь во второй попытке кода фрагмента сейчас.

# Invert the Dictionary
def Invert_Dictionary(data):
    return  {value: key for key, value in data.items()}
    
data = {"A": 1, "B":2, "C": 3}
invert = Invert_Dictionary(data)
print(invert) # {1: 'A', 2: 'B', 3: 'C'}

8. Многопоточность

Многопоточность поможет вам одновременно запускать функции Python. Допустим, вы хотите выполнить 5 функций одновременно, не дожидаясь завершения каждой из них. Проверьте приведенный ниже фрагмент кода.

# Multi-threading
import threading
  
def func(num):
    for x in range(num):
        print(x)
  
if __name__ == "__main__":
    t1 = threading.Thread(target=func, args=(10,))
    t2 = threading.Thread(target=func, args=(20,))
    t1.start()
    t2.start()
    t1.join()
    t2.join()

9. Элемент чаще всего появляется в списке

Этот фрагмент кода просто вычислит самый встречающийся элемент в списке. Я показал два способа сделать это. Проверьте это ниже.

# Element Occur most in List
from collections import Counter
mylst = ["a", "a", "b", "c", "a", "b","b", "c", "d", "a"]
# Method 1
def occur_most1(mylst):
    return max(set(mylst), key=mylst.count)
print(occur_most1(mylst)) # a
# Method 2 
# Much Faster then Method 1
def occur_most2(mylst):
    data = Counter(mylst)
    return data.most_common(1)[0][0]
print(occur_most2(mylst)) # a

10. Линии разделения

У вас есть необработанный текст в построчном формате, и вы хотите разбить его на строки. Этот фрагмент кода решит вашу проблему за секунду.

# Split lines
data1 = """Hello to
Python"""
data2 = """Programming
 Langauges"""
print(data1.split("\n")) # ['Hello to', 'Python']
print(data2.split("\n")) # ['Programming', ' Langauges']

11. Список карт в словаре

Этот фрагмент кода поможет вам преобразовать любые два списка в формат словаря. Чтобы узнать, как это работает, ознакомьтесь с приведенным ниже кодом.

# Map List into Dictionary
def Convert_to_Dict(k, v):
    return dict(zip(k, v))
    
k = ["a", "b", "c", "d", "e"]    
v = [1, 2, 3, 4, 5]
print(Convert_to_Dict(k, v)) # {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

12. Анализ электронной таблицы

Теперь вам не нужны Pandas или какие-либо другие внешние пакеты Python для анализа электронных таблиц. В Python есть встроенный модуль CSV, и этот фрагмент кода покажет вам, как его использовать.

# Parse Spreadsheet
import csv
#Reading
with open("test.csv", "r") as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
        print(row)
file.close()
#Writing
header = ["ID", "Languages"]
csv_data = [234, "Python", 344, "JavaScript", 567, "Dart"]
with open("test2.csv", 'w', newline="") as file:
    csv_writer = csv.writer(file)
    csv_writer.writerow(header)
    csv_writer.writerows(csv_data)

Последние мысли

Что ж, это 12 фрагментов кода Python, которые вы можете использовать в своем проекте или решать повседневные проблемы. Я надеюсь, что вы найдете эту статью полезной и получите удовольствие от чтения. Также поделитесь❤️ этой статьей со своими друзьями Pythoneer. Удачного программирования!

Вы можете поддержать меня и других ваших любимых авторов, став участником Medium + разблокировать все мои истории. Спасибо! 👇



Никогда не переставайте учиться. Вот ежедневная порция моих статей по программированию ниже, надеюсь, они вам тоже понравятся.















































Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.