Рубрики
Без рубрики

Понимание списка – Python

Понимание списка-это метод создания нового списка с использованием других итераций и в меньшем количестве строк кода.

Автор оригинала: Santosh Kumar Sahu.

В Python Понимание списка – это метод создания нового списка с использованием других итераций и в меньшем количестве строк кода. Итерируемым объектом, который может быть использован в этом методе, может быть любая структура данных, такая как список, кортеж, набор, строка, словарь и т. Д. Здесь также можно использовать итерацию, созданную с помощью функции range ().

Синтаксис, используемый в понимании списка, обычно содержит три сегмента:

итерируемый: итерируемый объект, такой как список, кортеж, набор, строка, словарь и т. Д. функция преобразования: функция преобразования, которая должна быть применена к итерируемому объекту. фильтры: фильтры/условия, которые должны применяться к итеративным.

Синтаксис

#list comprehension syntax
list = [tranform_func(i) for i in iterable if filters]

#which is equivalent to...
for i in iterator:
  if filters:
    list.append(tranform_func(i))

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

#creating list of squares of natural numbers
MyRange = range(1,6)
NewList = [i*i for i in MyRange]
print(NewList)

#creating list of odd numbers
MyTuple = (1, 2, 3, 4, 5, 6, 7, 8)
NewList = [i for i in MyTuple if i%2!=0]
print(NewList)

#creating list of characters (in uppercase) of a string 
MyString = 'Hello'
NewList = [i.upper() for i in MyString]
print(NewList)

Выход

[1, 4, 9, 16, 25]

[1, 3, 5, 7]

['H', 'E', 'L', 'L', 'O']

Функция понимания и преобразования списка

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

def grade(x):
  if x < 0:
    return 'Invalid'
  elif x >= 0  and x < 30:
    return 'Fail'
  elif x >= 30  and x < 50:
    return 'Grade C'
  elif x >= 50  and x < 75:
    return 'Grade B'
  elif x >= 75  and x <= 100:
    return 'Grade A'
  else:
    return 'Invalid'

MyList = [20, 45, 67, 90, -1, 89, 102]
NewList = [grade(i) for i in MyList]
print(NewList)

Выход

['Fail', 'Grade C', 'Grade B', 'Grade A', 'Invalid', 'Grade A', 'Invalid']

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

def prime(x):
  i = 2
  if x >= 2: 
    count = 0 
  else: 
    count = None
  while i <= x-1:
    if x%i==0:
      count = 1
      break;
    i = i + 1
  if count == 0:
    return x

MyRange = range(1,20)
NewList = [prime(i) for i in MyRange if prime(i) is not None]
print(NewList)

Выход

[2, 3, 5, 7, 11, 13, 17, 19]

Рекомендации

Википедия: Понимание списка Python.org: Понимание списка DataCamp: Понимание списка Навыки альфа-кодирования: Понимание списка YouTube: Понимание списка

.