Список — это тип данных в Python, который содержит последовательные элементы данных в упорядоченном или неупорядоченном порядке. Данные внутри списка могут быть похожими или разными. Обычно они используются для хранения связанных данных внутри них.
Списки похожи на массивы в других языках программирования. Без явного использования циклов списки сложно просматривать на других языках, но Python предоставляет функцию понимания списков, которая позволяет создавать список либо с нуля, либо другой список, используя короткий и лаконичный синтаксис. Мы можем использовать индексацию, циклы и условные выражения внутри него, чтобы получить точное значение.
Определение списка в Python
fruits=["Apple","Banana","Orange"] numbers=[1,2,5,7,8] characters=['a',"#",10]
В приведенных выше примерах мы видим, что список может содержать значения одинакового типа данных или разные, но обычно содержит связанные значения данных.
Создание списка с использованием понимания списка
1. Создание с нуля
#Syntax new_list = [expression for item in iterable if condition] #Examples numbers_to_10= [i for i in range(1,11)] print(numbers_to_10) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_nums_to_10= [i for i in range(1,11) if i%2==0] print(even_nums_to_10) # [2, 4, 6, 8, 10] odd_nums_to_10= [i for i in range(1,11) if i%2!=0] print(odd_nums_to_10) # [1, 3, 5, 7, 9] squares = [x**2 for x in range(1, 6)] print(squares) # [1, 4, 9, 16, 25] squares_of_odd=[x**2 for x in range(1, 6) if x%2!=0] print(squares_of_odd) # [1, 9, 25] cubes_of_even=[x**3 for x in range(1, 6) if x%2==0] print(cubes_of_even) # [8, 64]
Здесь мы создали новые списки, используя понимание списков, с нуля, перебирая тип данных range, изменяя возвращаемое значение и проверяя необходимые условия.
2. Создание из других списков
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = [x for x in numbers if x % 2 == 0] print(even_numbers) # Output: [2, 4, 6, 8, 10]
Здесь мы использовали условные выражения для фильтрации элементов из предопределенного списка и использования удовлетворенных значений для создания нового списка. В этом случае условие `x % 2 == 0` проверяет, делится ли каждое число `x` в списке `numbers` на 2. Только четные числа удовлетворяют этому условию и включаются в результирующий список.
3. Создание вложенных списков
matrix = [[x for x in range(1, 4)] for _ in range(3)] print(matrix) # Output: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
В этом примере понимание внешнего списка `[x for x in range(1, 4)]` создает список `[1, 2, 3]`. Понимание внутреннего списка выполняется три раза в результате итерации `range(3)`, в результате чего получается двумерная матрица с тремя строками.
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] flattened_list = [x for sublist in nested_list for x in sublist] print(flattened_list) # Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
В этом примере понимание внешнего списка перебирает каждый подсписок в `nested_list`, тогда как понимание внутреннего списка перебирает каждый элемент `x` в подсписке. Результирующий список содержит все элементы из вложенных списков. Это сводит вложенный список в один список.
n = 5 multiplication_table = [[i * j for j in range(1, n+1)] for i in range(1, n+1)] for row in multiplication_table: print(row) # Output: # [1, 2, 3, 4, 5] # [2, 4, 6, 8, 10] # [3, 6, 9, 12, 15] # [4, 8, 12, 16, 20] # [5, 10, 15, 20, 25]
В этом примере понимание внешнего списка перебирает диапазон чисел от 1 до `n`, представляющий строки таблицы умножения. Внутреннее понимание списка выполняет итерацию по одному и тому же диапазону, представляя столбцы. Произведение индекса каждой строки и столбца рассчитывается для создания таблицы умножения.
Таким образом, понимание списков можно использовать, чтобы избежать больших кусков кода в Python и сэкономить память с эффективной скоростью.
На простом английском языке
Спасибо, что вы являетесь частью нашего сообщества! Прежде чем уйти:
- Обязательно аплодируйте и следуйте за автором! 👏
- Еще больше контента вы можете найти на PlainEnglish.io 🚀
- Подпишитесь на нашу бесплатную еженедельную рассылку. 🗞️
- Следуйте за нами в Twitter(X), LinkedIn, YouTube и Discord.