List Comprehensions
- List comprehensions είναι ένας συνοπτικός και αποτελεσματικός τρόπος δημιουργίας list s in Python.
- Σας επιτρέπουν να δημιουργήσετε ένα νέο list, εφαρμόζοντας μια έκφραση σε κάθε στοιχείο σε έναν υπάρχοντα επαναληπτικό(π.χ., list πλειάδα, συμβολοσειρά) και φιλτράροντας τα στοιχεία με βάση μια συνθήκη.
- Η σύνταξη μιας list κατανόησης είναι:
[expression for item in iterable if condition]
Παράδειγμα:
# List comprehension to generate a list of squares of numbers from 0 to 9
squares = [x**2 for x in range(10)]
print(squares) # Output: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# List comprehension to filter even numbers from a list
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]
Dictionary Comprehensions
- Dictionary comprehensions σας επιτρέπουν να δημιουργείτε λεξικά με συνοπτικό τρόπο.
- Παρόμοια με το list comprehensions, δημιουργούν ένα νέο dictionary εφαρμόζοντας μια έκφραση σε κάθε στοιχείο σε ένα επαναληπτικό και φιλτράροντας στοιχεία με βάση μια συνθήκη.
- Η σύνταξη μιας dictionary κατανόησης είναι:
{key_expression: value_expression for item in iterable if condition}
Παράδειγμα:
# Dictionary comprehension to create a dictionary of squares of numbers from 0 to 9
squares_dict = {x: x**2 for x in range(10)}
print(squares_dict) # Output: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
# Dictionary comprehension to filter even numbers from a dictionary
numbers_dict = {1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five'}
even_numbers_dict = {key: value for key, value in numbers_dict.items() if key % 2 == 0}
print(even_numbers_dict) # Output: {2: 'two', 4: 'four'}
Set Comprehensions
- Set comprehensions σας επιτρέπουν να δημιουργήσετε set s με παρόμοιο τρόπο με list comprehensions και dictionary comprehensions.
- Δημιουργούν ένα νέο set εφαρμόζοντας μια έκφραση σε κάθε στοιχείο σε ένα επαναληπτικό και φιλτράροντας στοιχεία με βάση μια συνθήκη.
- Η σύνταξη μιας set κατανόησης είναι:
{expression for item in iterable if condition}
Παράδειγμα:
# Set comprehension to create a set of squares of numbers from 0 to 9
squares_set = {x**2 for x in range(10)}
print(squares_set) # Output: {0, 1, 4, 9, 16, 25, 36, 49, 64, 81}
# Set comprehension to filter even numbers from a set
numbers_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_numbers_set = {x for x in numbers_set if x % 2 == 0}
print(even_numbers_set) # Output: {2, 4, 6, 8, 10}
Comprehensions Παρέχετε Python έναν συνοπτικό και ευανάγνωστο τρόπο δημιουργίας list s, λεξικών και set s με βάση υπάρχοντες επαναληπτικούς, κάνοντας τον κώδικά σας πιο κομψό και αποτελεσματικό.