Основные приемы и советы, которые помогут вам быстрее писать чистый и лаконичный код на Python.
Я пишу эту статью для тех, кто имеет небольшой опыт работы с Python и, вероятно, хочет использовать Python для решения проблем с кодированием во время размещения в кампусе (Заявление об отказе от ответственности: некоторые компании не предоставляют Python для решения проблем с кодированием, и несколько компаний не рекомендуется использовать Python, даже если он предусмотрен 👎).
К вашему сведению, я не буду учить здесь основам Python, и большинство трюков и советов работают как для Python3, так и для Python2. Если вы уже знакомы с ними, моя работа сделана 👏. В противном случае добро пожаловать.
Вход
Взять строку чисел, разбить ее и преобразовать в целые числа, числа с плавающей запятой или что-то еще в одной строке.
>>> a = list(map(int,input().split())) 1 2 3 4 5 >>> print(a) [1,2,3,4,5]
Нить
Поиск подстроки? Используйте самый недооцененный оператор (на мой взгляд) в Python, оператор членства: in -
>>> "abc" in "zabcde" True
Переворачивая струну?
>>> s = “nohtyP liah llA” >>> s[::-1] All hail Python
Два способа вставки элементов в строку -
>>> "{0}, {1}, {2}".format(1,'a',"python") 1, a, python >>> "%d, %c, %s"%(1,'a',"python") 1, a, python
Хотите все буквы в верхнем или нижнем регистре?
>>> import string >>> string.ascii_lowercase 'abcdefghijklmnopqrstuvwxyz' >>> string.ascii_uppercase 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
Чтобы узнать больше о строковых методах, запустите help (string) в IDLE.
Список
Присвойте значения списка переменным -
>>> l = [1,2,3] >>> a,b,c = l >>> print(a,b,c) 1 2 3
Список строк в одну строку -
>>> l = ["All","Hail","Python"] >>> " ".join(l) 'All Hail Python'
Понимание списков - это простой способ создать список -
>>> upper_list = [chr(x) for x in range(65,91)] >>> upper_list ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] >>> odd_list = [x for x in range(10,30) if x%2!=0] # with conditions >>> odd_list [11, 13, 15, 17, 19, 21, 23, 25, 27, 29] >>> char_list = [x for x in "abcde"] >>> char_list ['a', 'b', 'c', 'd', 'e']
Распаковка и распаковка -
>>> a = [1,2,3] >>> b = ['a','b','c'] >>> z = zip(a,b) # zipping >>> [x for x in z] [(1, 'a'), (2, 'b'), (3, 'c')] >>> z1 = zip(*z) # unzipping >>> [x for x in z1] [(1, 2, 3), ('a', 'b', 'c')]
Списки сортировки -
>>> a = [1,2,4,3,7,6,8,5] >>> sorted(a) [1, 2, 3, 4, 5, 6, 7, 8] >>> sorted(a,reverse=True) [8, 7, 6, 5, 4, 3, 2, 1]
Словарь
Доступ к ключам и значениям -
>>> d = {1:'a',2:'b',3:'c'} >>> [x for x in d] # prints keys [1, 2, 3] >>> [x for x in d.values()] ['a', 'b', 'c']
Понимание словаря -
>>> a = ['a','b','c'] >>> d = {x:a[x] for x in range(3)} >>> d {0: 'a', 1: 'b', 2: 'c'}
Итерации по спискам и словарю
Список -
>>> a = [chr(x) for x in range(65,70)] >>> for i,x in enumerate(a): print(i,x) 0 A 1 B 2 C 3 D 4 E
Словарь -
>>> a = ['a','b','c'] >>> d = {x:a[x] for x in range(3)} >>> for i,x in d.items(): print(i,x) 0 a 1 b 2 c
Важный импорт
Counter и OrderedDict в коллекциях -
>>> from collections import Counter, OrderedDict >>> # Counter is a dictionary subclass for counting objects >>> a = ['a','b','c','a','c','a'] >>> c = Counter(a) >>> {x:c[x] for x in c} {'a': 3, 'b': 1, 'c': 2} >>> # OrderedDict is a dictionary subclass that remembers the order in which elements were added >>> d = OrderedDict() >>> d['a'] = 1 >>> d['b'] = 2 >>> d['c'] = 3 >>> d['d'] = 4 >>> for key, value in d.items(): print(key, value) a 1 b 2 c 3 d 4
Имеете дело с матрицей? Используйте numpy -
>>> import numpy >>> a=numpy.array([[1,2],[4,5],[7,8]]) >>>print(a) [[1 2] [4 5] [7 8]] >>> a.shape (3,2) >>> x=a.reshape(2,3) >>> print(x) [[1, 2, 4], [5, 7, 8]] >>> Transpose and Flatten >>> z=numpy.transpose(a) >>> print(z) [[1, 4, 7], [2, 5, 8]] >>> print(a.flatten()) [1 2 4 5 7 8]
Замена двух чисел
Это так просто -
>>> a,b = 1,2 >>> b,a = a,b >>> a,b (2, 1)
Это неполный список уловок и советов, и со временем я буду добавлять новые. Если я что-то пропустил, укажите в комментариях 👇. Спасибо, что прочитали ✌️.