Python. Пять уловок, которые нужно знать, уже сегодня |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2018-10-03 01:05 Будь вы старшим инженером AI или студентом первого курса биологии — рано или поздно вы столкнётесь с языком программирования Python. После релиза, в 1991 году, Python быстро стал любимым языком программистов и технологов. Согласно рейтингу Stack Overflow, основанному на проявлении интереса к языкам, в развитых странах, Python быстро набирает популярность. Python — высокоуровневый, интерпретируемый язык с относительно простым синтаксисом, идеально подойдет даже тем, кто ранее не программировал. Популярные библиотеки Python, хорошо интегрированы и используются в различных областях, например в биоинформатике (biopython), науке о данных (pandas), машинном обучении (keras/tensorflow) и даже в астрономии (astropy). После изучения C и Java, в качестве моих первых языков программирования, на освоение Python мне понадобилось несколько недель, достаточно было погуглить. Код выполняется гораздо медленнее, чем в Java и других языках, тем не менее Python на самом деле повышает продуктивность, благодаря хорошо налаженной интеграции процессов. Уловка №1: Сила «однострочников» (One-Liners) Вы устали пробираться между строк кода и теряться в условных конструкциях? Тогда, однострочники Python — это то, что вам нужно. Например, такая конструкция: >>> if alpha > 7: >>> beta = 999 >>> elif alpha == 7: >>> beta = 99 >>> else: >>> beta = 0 может быть упрощена: >>> beta = 999 if alpha > 7 else (99 if alpha == 7 else 0) До смешного просто! Если уделять больше внимания коду, который вы пишите, всегда найдется место, где можно упростить его однострочником. Кроме условных конструкций, упрощать можно и циклы lst = [1, 3, 5] doubled = [] for num in lst: doubled.append(num*2) можно упростить до одной строки: doubled = [num * 2 for num in lst] Конечно, если всюду использовать однострочники, это будет выглядеть неопрятно. Старайтесь не переусердствовать с сокращениями в своём коде, кто-то даже скажет, что широкое применение такого подхода — не канон. >>> import pprint; pprint.pprint(zip(('Byte', 'KByte', 'MByte', 'GByte', 'TByte'), (1 << 10*i for i in xrange(5)))) Уловка №2: Быстрые действия со строками Манипуляции со строками порой вызывают сложности, но в Python есть сокращения, которые облегчат вашу жизнь. Чтобы сделать реверс строки, просто добавьте >>> a = "ilovepython" >>> print a[::-1] nohtypevoli Такую уловку можно применить и к списку с числами. Манипулировать строками в Python, чрезвычайно просто. Например, вам нужно вывести предложение, используя предопределённые переменные: >>> str1 = "Totally" >>> str2 = "Awesome" >>> lst3 = ["Omg", "You", "Are"] Просто используйте метод >>> print ' '.join(lst3) Omg You Are >>> print ' '.join(lst3)+' '+str1+' '+str2 Omg You Are Totally Awesome Кроме действий со строками, рекомендую изучить больше о regex(регулярных выражениях), чтобы эффективно использовать шаблоны фильтров и поиск в стоках. Уловка №3 Комбинации вложенных списков Пожалуй, одна из моих любимых библиотек в Python — это >>> import itertools >>> flatten = lambda x: list(itertools.chain.from_iterable(x)) >>> s = [['"', 'An', 'investment'], ['in'], ['knowledge'], ['pays'], ['the', 'best'], ['interest."', '--'], ['Benjamin'], ['Franklin']] >>> print(' '.join(flatten(s))) " An investment in knowledge pays the best interest." -- Benjamin Franklin Из приведенного выше примера видно, как мы можем объединить вложенные списки и строки с помощью . Уловка №4 Простые структуры данных Возвращаясь к пункту №1. Однострочником, также очень просто вызвать инициализацию структур данных в Python. Гарольд Купер, реализовал однострочную древовидную структуру, используя следующий код: >>> def tree(): return defaultdict(tree) Приведенный выше код просто определяет древо, которое является словарём, со значением по умолчанию tree. Другие однострочные функции, как например генератор простых чисел: >>> reduce( (lambda r,x: r-set(range(x**2,N,x)) if (x in r) else r), range(2,N), set(range(2,N))) можно найти на Github и Stack Overflow. Также в Python есть мощная библиотека >>> from collections import Counter >>> myList = [1,1,2,3,4,5,3,2,3,4,2,1,2,3] >>> print(Counter(myList)) Counter({2: 4, 3: 4, 1: 3, 4: 2, 5: 1}) Уловка №5 Упрощенный вывод данных Хотел бы я узнать раньше об этом трюке. Он позволяет вывести строчный массив одной строкой, с разделением запятыми. Нам не нужно использовать >>> row = ["1", "bob", "developer", "python"] >>> print(','.join(str(x) for x in row)) 1,bob,developer,python Можно использовать однострочник: >>> print(*row, sep=',') 1,bob,developer,python Еще один элегантный способ вывода, использовать iterable = ['a','b','c'] c = 0 for item in iterable: print c, item c+= 1 0 a 1 b 2 c тоже самое, можно записать двумя: for c, item in enumerate(iterable): print c, item В Python, есть еще сотни тысяч подобных уловок, например Источник: nuancesprog.ru Комментарии: |
|