Питонический способ логического упрощения сложных вещей
Python - востребованный язык программирования. Этот язык легко выучить и применить. Будет проще, если вы уже знаете какой-либо язык программирования. Глубина в Python позволяет использовать его для написания сценариев, разработки приложений пользовательского интерфейса и машинного обучения. Еще один недостаток знания других языков программирования заключается в том, что вы начинаете использовать python неосознанно, не в питонической манере. Python - это высокопроизводительный язык программирования, который позволяет заменять сложную логику одной строкой. - Итак, это заставляет изучать эти уловки и решать свои проблемы более питоническим способом.
1. Диапазон, перечисление и отображение
1.1. Создайте список от 0 до 5.
nums = list(range(0,6)) # done list is created [0,1,2,3,4,5]
1.2 Составьте список нечетных чисел
Диапазон позволяет указать начальную позицию, конечную позицию и шаги, которые нужно сделать из начальной позиции
nums_list = [*range(1,6,2)]
1.3 Enumerate: просмотреть список с помощью enumerate для получения индекса и значения
enumerate не только возвращает индекс и значение, но также позволяет добавить начальную точку индекса, то есть enumerate (colors, 10), а индекс начинается с 10
colors = ['violet', 'red', 'blue', 'green'] color_names = [] for index, color in enumerate(colors): print(index, color) color_name = (index, color) color_names.append(index_name) # let us rewrite the above thing in more pythonic way color_names = [(index, color) for index, color in enumerate(colours)] # reduce it down to more better code color_names = list(enumerate(colors)) # awesome
1.4 Карта: преобразовать каждый элемент в верхний в списке
Карта позволяет применить функцию к данному списку в качестве аргумента. Есть еще один интересный факт. Давайте изучим
# it will convert the string inside whole list into upper color_names = map(str.upper, colors) # another way to do without map color_names = str(colors).upper()
Интересный факт о карте заключается в том, что вы можете применить свою собственную функцию к карте, чтобы делать удивительные вещи простым питоническим способом. Предположим, задача состоит в том, чтобы изменить верхний регистр на нижний и нижний на верхний в списке.
def change_case(value): return_string =[] return ''.join(i.upper() if i.isupper() else i.lower() for i in value) color_names = list(map(change_case, colors))
Даже если мы говорим о приведенном выше коде, если вы видите функцию, которая выполняет задачу в одной строке, что может быть циклом for на любом другом языке программирования.
2. Массивы Numpy
Массивы Numpy очень важны, поскольку они обеспечивают быстрое вычисление, и в большинстве случаев все необходимые вычисления массивов, необходимые для машинного обучения, могут быть легко выполнены с помощью numpy. Создать массив numpy очень просто, так как он позволяет преобразовывать список в массивы. Единственное ограничение для массивов numpy заключается в том, что они всегда однородны по своей природе. Это означает, что он всегда хранит один тип данных.
2.1 Создание массива или преобразование списка в массив
np.array(range(10)) num_array = np.array([*range(10, 20, 2)]) # array is created converting list into array
Массивы обеспечивают гибкость, позволяющую выполнять все вычисления простым и быстрым способом, например, num_array + 2, он добавит 2 к каждому элементу в массиве. И вы можете попробовать поиграть с двумя массивами, умножением и т. Д. Это будет весело, и вы увидите, как легко добиться этого в Python.
3. Магические команды
Улучшение и улучшение производительности всегда является проблемой для любого языка программирования. В Python есть команды для этого
3.1% timeit
Это позволяет узнать время, прошедшее до выполнения программы. Это хорошо, поскольку позволяет сравнить два варианта и легко определить лучшую программу по производительности.
%timeit
также позволяет указать количество прогонов и количество циклов для проверки производительности вашего кода, т.е. флаги-r
и-n
. Вы можете использовать-r10
и-n25
, чтобы указать 10 итераций с 25 циклами в каждой при вычислении среднего и стандартного отклонения времени выполнения для вашего кода.
3.2 %% timeit
% time позволяет получить тайминги для одной строки кода. Если вы хотите оценить несколько строк, то %% timeit - это вариант для сбора статистики.
Для профилирования и определения памяти / времени, затраченного на каждом шаге, обратитесь здесь.
4. Манипуляции со списком
Понимание списка очень важно для эксперта. Он выглядит хорошо для чтения, более питонический, с неплохой производительностью. Есть много встроенных функций для поддержки списка. Давайте возьмем предыдущий пример преобразования всех строк в верхний регистр в списке, это может занять много кода на любом другом языке программирования. Python может сделать это, используя одну строку кода, используя понимание списка, или вы можете применить str.upper () непосредственно к списку. Есть много таких вариантов использования, в которых такие постановки задач могут быть легко решены.
Заключение
Я попытался пройти некоторые уловки с питоном. Python пользуется спросом, и каждый хочет учиться. В основном, многие программисты начинают использовать python, как и любой другой язык программирования, что лишает смысла использование python. Так что продвинутые приемы и основы написания кода питоническим языком всегда помогают. Поверьте мне! ваш код выглядит хорошо, компактно и умно, когда вы применяете все эти уловки. Это несколько основных приемов, но определенно, как только вы начнете применять эти приемы, вы определенно узнаете все больше и больше.
Еще одна уловка для повышения производительности. Просто и полезно. Существует буквальный синтаксис для определения структуры данных, которая может повысить производительность по сравнению с другим методом. Например: рассмотрите возможность использования буквального синтаксиса (например,
[]
вместоlist()
,{}
вместоdict()
или()
вместоtuple()
). Отлично !
В целом эти уловки помогут вам исправить код и написать код более питоническим способом. % time и %% time - это всегда хороший вариант для проверки различного кода и времени, затрачиваемого на оценку производительности вашего кода. Это определенно позволит получить доказательства в поддержку вашего кода. Существуют такие параметры, как профилирование, чтобы глубже изучить вашу программу и увидеть точное время, затраченное на выполнение всей программы. Я определенно предложу варианты профилирования, но я скажу, что% time также является лучшим вариантом для первоначального поиска вашего кода. Массивы важны, поскольку они являются частью многих библиотек, например панд. Приятно иметь все это в своих занятиях. Я надеюсь, что это поможет вам еще больше заинтересовать Python. Надеюсь, я смогу обогатить ваши знания и постараюсь придумать еще такие уловки. Удачного обучения и программирования!