Эффективное понимание Python (8)

Python

«Это 8-й день моего участия в ноябрьском испытании обновлений, ознакомьтесь с подробностями события:Вызов последнего обновления 2021 г."

эффективный вывод

понимание списка

Синтаксис списков очень прост, как показано ниже.

[Создать выражение для переменной в последовательности или повторяемом объекте]

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

Ниже мы используем еще несколько примеров, чтобы проиллюстрировать возможности спискового понимания.

1. Отфильтровать элементы в исходной последовательности, которые не соответствуют критериям

В понимании списка мы можем фильтровать элементы, которые соответствуют условиям, посредством логического суждения оператора if. Например, если мы хотим извлечь целые числа из списка и возвести их в квадрат,

aList = []
for x in range(4):
    aList.append(x**2)

2. Мозаика вложенных списков с использованием списков

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

vec = [[1,2,3],[4,5,6],[7,8,9]]
flat_vec = [num for elem in vec for num in elem]
print(flat_vec)

получил ответ

[1,2,3,4,5,6,7,8,9]

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

3. Создайте конкретный список, объединив несколько условий

Как упоминалось ранее, понимание списка состоит из пары круглых скобок, внутри которых находится выходное выражение, за выражением следует оператор for, за которым следует ноль или более операторов for и операторы if.Благодаря различным комбинациям можно Создавайте различные типы списков высшего порядка. Например, следующее понимание списка объединяет элементы из двух разных списков.

new_list = [[x,y] for x in [1,2,3] for y in [3,1,4] if x!=y]
print(new-list)

получил ответ

[(1,3),(1,4),(2,3),(2,1),(2,4),(3,1),(3,4)]

Обратите внимание, что если выражение является кортежем, например (x,y) в In [12], оно должно быть заключено в скобки.

4 Понимание словаря

Использование словарного понимания похоже на использование списка, за исключением того, что знак списка - пара квадратных скобок [], заменен на знак словаря - пара фигурных скобок {}. Например, функция следующего кода заключается в обмене ключами и значениями исходного словаря.

mcase = {'a':10,'b':30,'c':50}
kv-exchange = {v: k for  k, v in mcase.items()}
print(kv_exchange)

получил ответ

{10:'a',30:'b',50:'c'}

В [2] приведенного выше кода используется метод словаря items(), который возвращает список, поддерживающий операции обхода.Список представляет собой небольшой элемент, такой как (ключ 0, значение 0), (ключ 1, значение 2) Группа.