Расширенные операции со списками: сортировка, запросы и вложенность
На этом заключительном этапе вы изучите более продвинутые операции со списками, включая сортировку, получение информации (запросы) и работу с вложенными списками.
Начнем с сортировки. Метод sort() изменяет список на месте (in-place). Вы можете сортировать по возрастанию или по убыванию.
Откройте файл list_operations.py в WebIDE. Добавьте следующий код для демонстрации сортировки:
## --- Sorting Lists ---
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
print("--- Sorting Lists ---")
print("Original numbers list:", numbers)
## Sort the list in-place (ascending)
numbers.sort()
print("After sort():", numbers)
## Sort the list in descending order
numbers.sort(reverse=True)
print("After sort(reverse=True):", numbers)
## The reverse() method simply reverses the order, it does not sort
letters = ['a', 'b', 'c', 'd']
print("\nOriginal letters list:", letters)
letters.reverse()
print("After reverse():", letters)
Сохраните файл и запустите его из терминала:
python ~/project/list_operations.py
Вывод покажет отсортированные и обращенные списки:
--- Sorting Lists ---
Original numbers list: [3, 1, 4, 1, 5, 9, 2, 6]
After sort(): [1, 1, 2, 3, 4, 5, 6, 9]
After sort(reverse=True): [9, 6, 5, 4, 3, 2, 1, 1]
Original letters list: ['a', 'b', 'c', 'd']
After reverse(): ['d', 'c', 'b', 'a']
Далее давайте выполним запросы к списку для поиска информации.
count(): Возвращает количество вхождений заданного значения.
index(): Возвращает индекс первого вхождения значения.
Добавьте следующий код в list_operations.py:
## --- Querying Lists ---
fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
print("\n--- Querying Lists ---")
print("Fruits list:", fruits)
## Count the occurrences of an element
apple_count = fruits.count('apple')
print("Count of 'apple':", apple_count)
## Find the index of the first occurrence of an element
banana_index = fruits.index('banana')
print("Index of first 'banana':", banana_index)
Наконец, рассмотрим вложенные списки (nested lists). Вложенный список — это список, который содержит другие списки в качестве своих элементов. Это полезно для создания двумерных (2D) структур, таких как матрица или сетка.
Добавьте этот последний блок кода в list_operations.py:
## --- Nested Lists ---
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print("\n--- Nested Lists ---")
print("Matrix:", matrix)
## Access an entire inner list (a row)
first_row = matrix[0]
print("First row:", first_row)
## Access a specific element in the nested list
## To get the element '6', we access row 1, then column 2
element = matrix[1][2]
print("Element at matrix[1][2]:", element)
Сохраните файл и запустите скрипт в последний раз:
python ~/project/list_operations.py
Полный вывод продемонстрирует сортировку, запросы и доступ к вложенным спискам:
--- Sorting Lists ---
Original numbers list: [3, 1, 4, 1, 5, 9, 2, 6]
After sort(): [1, 1, 2, 3, 4, 5, 6, 9]
After sort(reverse=True): [9, 6, 5, 4, 3, 2, 1, 1]
Original letters list: ['a', 'b', 'c', 'd']
After reverse(): ['d', 'c', 'b', 'a']
--- Querying Lists ---
Fruits list: ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
Count of 'apple': 2
Index of first 'banana': 3
--- Nested Lists ---
Matrix: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
First row: [1, 2, 3]
Element at matrix[1][2]: 6
Теперь вы в совершенстве овладели несколькими продвинутыми методами работы со списками Python.