Разбиране на списъка на Python


Създаване на списък в Python:

Преди да преминем към темата „Разбиране на списъка на Python“, нека видим най-популярните начини, с които създаваме списъци в Python.

За цикъл:

По-долу са описани стъпките за създаване на списък с помощта на за цикъл.

  • Декларирайте празен списък.
  • Итерация през итерация с помощта на цикъл.
  • Добавете елементите към декларирания празен списък.
st='hello world'
l=[]
for i in st:
    l.append(i)
print(l)
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

карта ():

Функцията map () приема итерация и функция като аргумент. Всеки елемент от итерация се предава на функцията. Резултатът от функцията map () е обект на карта, който може да се повтори, който можем да преобразуваме в списък с помощта на функцията list ().

синтаксис:

map(function,iterable)

Пример:

def square(n):
    return n*n

l=[7,14,6,15,2,9]
ob=map(square,l)
print(ob)
print(list(ob))
<map object at 0x04A93510>
[49, 196, 36, 225, 4, 81]

Разбиране на списъка:

Разбирането на списъци е друг елегантен, кратък и кратък начин за създаване списъци в Python.

Синтаксис:

[expression for item in iterable]

Пример:

Нека препишем цикъла for от първия пример с разбиране на списък. Това ще бъде само един ред код.

output_list=[i for i in 'hello world']
print(output_list)
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

Не всеки цикъл for обаче може да бъде пренаписан като разбиране на списък. След като се почувствате удобно, с разбирането на списъка можете да замените повече за цикли с него.

Условия в разбирането на списъка на Python:

Можем да използваме и условия при разбиране на списък.

Ако:

Програмата по-долу отпечатва само гласните в даден низ.

vowels=['a','e','i','o','u']

output_list=[i for i in 'hello world' if i.lower() in vowels]
print(output_list)
['e', 'o', 'o']

Ако е друго:

vowels=['a','e','i','o','u']

output_list=["Vowel" if i.lower() in vowels else "Consonant" for i in 'hello world' ]
print(output_list)
['Consonant', 'Vowel', 'Consonant', 'Consonant', 'Vowel', 'Consonant', 'Consonant', 'Vowel', 'Consonant', 'Consonant', 'Consonant']

Вложен ако:

Програмата по-долу отпечатва само гласните главни букви.

vowels=['a','e','i','o','u']

output_list=[i for i in 'hEllo wOrld' if i.lower() in vowels if i not in vowels]
print(output_list)
['E', 'O']

Тук проверяваме за две неща:

  • Проверява за всеки символ в низ дали е гласна или не.
  • Ако горното условие е изпълнено, проверете дали това е гласна главна буква.

Вложен за цикъл в разбирането на списъка на Python:

Можем да пренапишем не само циклите for, но и вложени за цикли като разбиране на списък. Нека се опитаме да разберем с пример. Имаме входен списък от низове. Изходният списък съдържа символите на всеки низ.

Кодът, използващ вложен цикъл for, ще бъде:

st=['hello','world','hi']

output_list=[]

for i in st:
    for j in i:
        output_list.append(j)

print(output_list)
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd', 'h', 'i']

Можем да пренапишем горния код като разбиране на списък в един ред.

st=['hello','world','hi']

output_list=[j for i in st for j in i]
print(output_list)
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd', 'h', 'i']

препратка