Розуміння списків Python пояснюється на прикладах

Розуміння списків забезпечує стислий спосіб створення списків у Python. Вони більш читабельні та часто ефективніші, ніж використання традиційних циклів. У цій статті буде досліджено, що таке розуміння списків, як вони працюють, і надано приклади для ілюстрації їх використання.

Що таке розуміння списку?

Розуміння списку — це компактний спосіб обробки всіх або частини елементів колекції та повернення списку з результатами. Синтаксис розуміння списку такий:

[expression for item in iterable if condition]

Тут expression є поточним елементом у ітерації, але це також результат, яким ви можете маніпулювати, перш ніж він закінчиться як елемент списку. iterable — це колекція, яку ви переглядаєте, а condition — необов’язковий фільтр, який включає лише елементи, які задовольняють умову.

Основні приклади

Створення списку квадратів

Щоб створити список квадратів чисел від 0 до 9, ви можете використовувати розуміння списку таким чином:

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
squares = [x ** 2 for x in numbers]
print(squares)

Вихід:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Фільтрування елементів

Ви також можете додати умову для фільтрування елементів. Наприклад, щоб отримати лише парні числа зі списку:

even_squares = [x ** 2 for x in numbers if x % 2 == 0]
print(even_squares)

Вихід:

[0, 4, 16, 36, 64]

Зведення списку списків

Якщо у вас є список списків і ви хочете його звести, ви можете скористатися розумінням списку:

list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [item for sublist in list_of_lists for item in sublist]
print(flattened)

Вихід:

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

Розширені приклади

Застосування функцій

Ви можете застосовувати функції в межах розуміння списку. Наприклад, щоб перетворити список рядків у верхній регістр:

words = ['hello', 'world', 'python']
uppercase_words = [word.upper() for word in words]
print(uppercase_words)

Вихід:

['HELLO', 'WORLD', 'PYTHON']

Вкладені розуміння

Спискові розуміння можуть бути вкладеними. Наприклад, щоб створити список кортежів (i, j), де i та j є елементами з двох списків:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
pairs = [(i, j) for i in list1 for j in list2]
print(pairs)

Вихід:

[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]

Висновок

Розуміння списків пропонує потужний і стислий спосіб створення списків у Python. Вони можуть спростити ваш код і зробити його більш читабельним, замінивши кілька рядків коду циклу одним рядком розуміння. Практикуйте розуміння списків, щоб зручніше користуватися їхнім синтаксисом і можливостями.