?????? # 5 ???????????????????? ?????? ?????????? ???? ????????????: List Comprehension in Python
List Comprehensions allows developers to create lists in a more succinct and readable manner, enhancing both efficiency and code clarity. In this article, we'll explore the ins and outs of list comprehension, providing a comprehensive guide for beginners and a refresher for seasoned developers.
?
1. Basics of List Comprehension:
List comprehension is a concise way to create lists in Python. It follows the syntax [expression for item in iterable], where the expression is evaluated for each item in the iterable. Let's start with a simple example:
?
# Traditional approach
squares = []
for i in range(5):
??? squares.append(i**2)
?
# Using list comprehension
squares = [i**2 for i in range(5)]
?
2. Conditionals in List Comprehension:
List comprehensions can also include conditionals, allowing you to filter elements based on specific criteria. Consider the following example:
# Traditional approach
even_squares = []
for i in range(5):
??? if i % 2 == 0:
??????? even_squares.append(i**2)
?
# Using list comprehension with a conditional
even_squares = [i**2 for i in range(5) if i % 2 == 0]
?
?
3. Nested List Comprehension:
List comprehensions can be nested, providing a concise way to create multidimensional lists. Here's an example:
# Traditional approach
matrix = []
for i in range(3):
??? row = []
??? for j in range(3):
??????? row.append(i * j)
??? matrix.append(row)
?
# Using nested list comprehension
matrix = [[i * j for j in range(3)] for i in range(3)]
?
?
4. Transforming Data with List Comprehension:
List comprehension is often used to transform data. For instance, converting a list of strings to uppercase:
?
# Traditional approach
fruits = ['apple', 'banana', 'cherry']
uppercase_fruits = []
for fruit in fruits:
??? uppercase_fruits.append(fruit.upper())
?
# Using list comprehension for transformation
uppercase_fruits = [fruit.upper() for fruit in fruits]
?
?
5. Set and Dictionary Comprehension:
List comprehension has siblings – set and dictionary comprehensions. They follow a similar syntax but result in sets and dictionaries, respectively.
# Set comprehension
unique_squares = {i**2 for i in range(5)}
?
# Dictionary comprehension
square_dict = {i: i**2 for i in range(5)}