Python

Составление списков в Python

Составление списков в Python
Понимание списков часто используется в Python для написания однострочных операторов, которые создают новый список или словарь путем цикла по итерируемому объекту. В этой статье будет объяснено, как использовать понимание списков в Python, начиная с базового объяснения того, как циклы for работают в Python.

Для цикла в Python

Оператор цикла for в Python последовательно перебирает элементы любого объекта, списка, строки и т. Д. По сравнению с другими языками программирования, его синтаксис намного чище и не требует ручного определения шагов итерации и запуска итерации. Хотя есть способы сделать его поведение таким же, как и в других языках программирования (в этой статье не рассматриваются). Вы также можете осуществлять некоторый контроль над циклами for, используя такие операторы, как continue, break, pass и т. Д. Ниже приведен простой пример цикла for в Python:

для x в диапазоне (10):
печать (х)

Цикл for выше напечатает десять чисел, начиная с 0 и заканчивая 9.

Составить список

Понимание списка - это не что иное, как сокращенный / краткий способ написания многострочного цикла for в однострочном операторе. В приведенном ниже примере понимания списка будет создан новый список как [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] путем включения в него всех значений «x».

числа = [x для x в диапазоне (10)]
печать (числа)

Обратите внимание, что понимание списка всегда создает новый список и не изменяет исходные итерации, используемые в выражении. Типичное выражение понимания списка должно иметь предложение «for» и может сопровождаться условными операторами «if» и «else». Без использования списка, приведенный выше пример будет записан следующим образом:

числа = []
для x в диапазоне (10):
числа.добавить (х)
печать (числа)

Производительность и читаемость

Понимание списков выполняется быстрее, чем циклы for. Однако, если вы не перебираете сотни тысяч элементов, вы не заметите значительных улучшений производительности. В то время как понимание списков обеспечивает краткий способ написания циклов for, сложные выражения могут привести к плохой читаемости кода и повышенной многословности. Важно сохранять код читабельным, если только достижение максимальной производительности не является абсолютной необходимостью для вашей программы.

Пример: использование синтаксиса составления списков со словарями и наборами

Словарь python - это набор элементов, определенных в парах ключ-значение, а набор - это набор уникальных значений, дублирование которых не допускается. Понимание списков также может использоваться со словарями и наборами Python. Синтаксис немного отличается: вместо того, чтобы заключать выражение в квадратные скобки, теперь вам придется использовать фигурные скобки. Вы также получите новый объект словаря / набора вместо нового списка.

data = "city": "new york", "name": "john doe"
formatted_data = k: v.title () для k, v в данных.Предметы()
печать (форматированные_данные)

В приведенном выше примере строковые значения преобразуются в регистр заголовка и создается новый словарь с именем «formatted_data», вывод которого будет следующим: 'city': 'New York', 'name': 'John Doe'. Вы также можете изменить словарь / установить на месте, указав существующую переменную словаря с левой стороны.

data = "city": "new york", "name": "john doe"
данные = k: v.title () для k, v в данных.Предметы()
печать (данные)

Без использования словарных интерпретаций код выглядел бы так:

data = "city": "new york", "name": "john doe"
formatted_data =
для k, v в данных.Предметы():
formatted_data [k] = v.заглавие()
печать (форматированные_данные)

Поскольку в наборах нет пар ключ-значение, понимание набора может быть определено так же, как понимание списка. Единственное отличие - использование фигурных скобок.

Пример: несколько циклов For в понимании списка

Упомянутый выше пример понимания списка является базовым и использует один оператор «for». Ниже приведен пример использования нескольких циклов for и условного оператора if.

прилагательные = ["Disco", "Eoan", "Focal", "Artful"]
animals = [«Динго», «Горностай», «Ямка», «Бобёр»]
codenames = [x + "" + y вместо x в прилагательных вместо y у животных, если y.начинается с (x [0])]
печать (кодовые имена)

Код покажет ['Disco Dingo', 'Eoan Ermine', 'Focal Fossa'] в качестве вывода. Два цикла for проходят через списки «прилагательные» и «животные», и их элементы объединяются с помощью пробела, только если первые буквы обоих слов совпадают. Без использования списков, код выглядел бы так:

прилагательные = ["Disco", "Eoan", "Focal", "Artful"]
animals = [«Динго», «Горностай», «Ямка», «Бобёр»]
codenames = []
для x в прилагательных:
для y у животных:
если да.начинается с (x [0]):
кодовые имена.добавить (x + "" + y)
печать (кодовые имена)

Пример: понимание списка с условием if-else

В приведенном ниже примере будет показано использование операторов if и else в понимании списков.

number_list = [1, 2, 3, 4]
another_list = [5, 6, 7, 8]
результат = [Верно, если (x + y)% 2 == 0 иначе Ложь для x в number_list для y в another_list]
печать (результат)

При просмотре двух списков приведенное выше понимание списка проверяет, является ли сумма пары элементов четной или нет. Выполнение приведенного выше кода покажет вам [True, False, True, False, False, True, False, True, True, False, True, False, False, True, False, True] в качестве вывода. Без использования списка, код выглядел бы так:

number_list = [1, 2, 3, 4]
another_list = [5, 6, 7, 8]
результат = []
для x в number_list:
для y в another_list:
если (x + y)% 2 == 0:
результат.добавить (Истина)
еще:
результат.добавить (Ложь)
печать (результат)

Заключение

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

Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...
Курсор прыгает или перемещается случайным образом при наборе текста в Windows 10
Если вы обнаружите, что ваш курсор мыши прыгает или перемещается сам по себе, автоматически, случайным образом при вводе текста на ноутбуке или компью...
Как изменить направление прокрутки мыши и сенсорной панели в Windows 10
Мышь а также Сенсорная панельs не только упрощают вычисления, но и делают их более эффективными и требуют меньше времени. Мы не можем представить себе...