Беглый взгляд на списки
Списки были одной из первых вещей, которые я узнал, когда начал изучать Python, и вскоре я понял, что они являются часто используемой функцией языка программирования. Список на языке Python - это упорядоченная и изменяемая структура данных, которая содержит набор элементов, хранящихся в скобках []. Списки могут содержать дубликаты, и отдельные элементы в списке могут быть вызваны с использованием соответствующего значения индекса, начиная с [0,…, n]. Элементы в списке можно удалять, изменять или добавлять, что делает списки адаптируемым способом работы с данными. Существует масса ресурсов, которые помогут вам узнать больше о списках Python, но вот пример:
#example list color_list = ["green", "red", "blue", "yellow"]
Начиная со списков
Один из «питонических» способов работы со списками называется понимание списков. Составление списка - это синтаксическая конструкция, которая позволяет создавать список на основе существующих списков. Общий синтаксис следующий:
#new_list = [(output value)(for loop)(logical conditions)] #example list comprehension green_list = [color for color in color_list if color == 'green']
Понимание списков может значительно сократить объем кода, необходимый для выполнения операции. Например, это та же самая логика, использующая цикл for вместо понимания списка:
green_list2 = [] for color in color_list: if color == 'green': green_list2.append(color)
Моя Эврика! Момент с пониманием списка
Прежде чем я начал изучать Python, я был знаком с SQL и ежедневно использовал его в своей работе. SQL (язык структурированных запросов) обычно используется для управления данными в реляционных базах данных, таких как MySQL и Microsoft SQL Server. Когда я был новичком в Python, списки казались довольно простыми и простыми для применения во многих отношениях, но понимание списков было мне трудным для понимания. Синтаксис меня напугал, поэтому я избегал их использования. Однажды, работая с упражнением на Python, я писал понимание списка и внезапно понял, что синтаксис напоминает оператор SQL SELECT. Это была Эврика! момент для меня и дал мне уверенность в том, что я могу проявить творческий подход.
#SQL select statement example #SELECT color FROM color_list WHERE color IN ('green', 'red', 'blue') #list comprehension selecting the same data as the SQL statement rgb = [color for color in color_list if color in('green', 'red', 'blue')] print(rgb)
Легко увидеть, как представление списка напоминает оператор выбора SQL.
Больше понимания списков
После того, как у меня возникла эврика, изучение списков стало намного проще. Несмотря на то, что это мощный инструмент, следует помнить о нескольких вещах. Компоненты списка могут быть переписаны как циклы for, но не каждый цикл for может быть записан как понимание списка! Кроме того, запись цикла for может иметь смысл с точки зрения удобочитаемости и ремонтопригодности.
Вот еще несколько примеров использования списков:
Два способа сопоставления значений с использованием списков
#create numeric indicators for colors color_indicator = [0 if color == 'green'else 1 if color == 'red' else 2 if color == 'blue' else 3 for color in color_list] print(color_list) print(color_indicator)
color_mapping = {'green': 0, 'red': 1, 'blue':2, 'yellow':3} color_indicator2 = [color_mapping[color] if color in color_mapping else 'na' for color in color_list] print(color_list) print(color_indicator2)
Поиск предметов длины n
Допустим, мы хотим найти в нашем списке все цвета, длина которых превышает 5 символов.
long_color_words = [color for color in color_list if len(color) > 5] long_color_words
Между логикой тоже легко скопировать. Мы можем найти все цвета длиной от 4 до 6:
color_length5 = [color for color in color_list if len(color) > 4 and len(color) < 6] color_length5
Вложенные петли
Вы можете вкладывать циклы для выполнения операций и возврата матрицы. Здесь мы создаем матрицу атрибутов цвета:
color_list1 = ['green', 'red', 'blue', 'yellow'] color_list2 = ['dark', 'bright', 'tinted', 'glowing'] color_matrix = [[color2 + ' ' + color1 for color1 in color_list1] for color2 in color_list2] color_matrix
Заключительные замечания
Надеюсь, это поможет разобраться в понимании списков Python и даст вам упрощенный способ думать о них, если поначалу они казались пугающими. Это элегантный и эффективный способ работы со списковыми данными, поэтому их понимание - важный шаг в продвижении в Python. Думая о понимании списков, как если бы они были операторами SQL Select, я смог осмыслить концепцию и с большей уверенностью исследовать функциональность.
Благодарю вас!
- Если вам понравилось, подписывайтесь на меня на Medium, чтобы узнать больше
- Получите ПОЛНЫЙ ДОСТУП и помогите поддержать мой контент, подписавшись
- Давайте подключимся к LinkedIn
- Анализировать данные с помощью Python? Загляните на мой сайт