Bài học theo mô-đun (2/4)
Đọc chính tả và thiết lập sự hiểu biết
Cú pháp tương tự được sử dụng để hiểu danh sách cũng có tác dụng để xây dựng Giá trị dict và set — bạn chỉ cần thay đổi dấu ngoặc.
Hiểu chính tả
Cú pháp: {key: value for element in iterable}.
quadrati = {n: n * n for n in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}Mẫu chung: biến danh sách các bộ dữ liệu thành một lệnh.
coppie = [("a", 1), ("b", 2), ("c", 3)]
d = {k: v for k, v in coppie}
# {'a': 1, 'b': 2, 'c': 3}
# (equivalente a dict(coppie) in questo caso)Hoán đổi khóa và giá trị của một lệnh:
originale = {"a": 1, "b": 2, "c": 3}
invertito = {v: k for k, v in originale.items()}
# {1: 'a', 2: 'b', 3: 'c'}Lọc một lệnh:
prezzi = {"mela": 1.2, "pera": 1.5, "kiwi": 2.5, "ananas": 4.0}
economici = {k: v for k, v in prezzi.items() if v < 2.0}
# {'mela': 1.2, 'pera': 1.5}Đặt mức độ hiểu
Cú pháp: {expression for element in iterable}. Tương tự như một danh sách
hiểu, nhưng với dấu ngoặc nhọn.
parole = ["ciao", "mondo", "ciao", "python"]
uniche = {p.upper() for p in parole}
# {'CIAO', 'MONDO', 'PYTHON'}Tên viết tắt duy nhất từ danh sách tên:
nomi = ["Ada", "Linus", "Grace", "Alan", "Guido"]
iniziali = {n[0] for n in nomi}
# {'A', 'L', 'G'}Lọc + chuyển đổi
Giống như việc hiểu danh sách, các bộ lọc if ở cuối:
{n: n * n for n in range(10) if n % 2 == 0}
# {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}Hiểu chính tả để hoán đổi khóa và giá trị
Một mẫu rất phổ biến để đảo ngược từ điển (hoán đổi khóa và giá trị, giả sử các giá trị là duy nhất) là:
orig_dict = {'a': 1, 'b': 2}
inv_dict = {value: key for key, value in orig_dict.items()}
# result: {1: 'a', 2: 'b'}Hãy thử nó
Cho `words = ['mela', 'pera', 'kiwi', 'banana']`, xây dựng `lengths` dưới dạng một lệnh {word: len(word)}. Đánh giá `độ dài`.
Hiển thị gợi ý
{p: len(p) cho p trong từ}
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Cho `nums = [1, 2, 2, 3, 4, 4, 5]`, xây dựng `unique_squares` dưới dạng TẬP HỢP các hình vuông. Đánh giá `unique_squares`.
Hiển thị gợi ý
Dấu ngoặc nhọn không có ':' = đặt mức độ hiểu.
Giải pháp khả dụng sau 3 lần thử
Thử thách bổ sung
Given the list of strings `names = ["Alice", "Bob"]`, use a dict comprehension to create a dictionary that maps each name to its length. Store the dictionary in `name_lengths` and evaluate it.
Hiển thị gợi ý
Cú pháp là {name: len(name) cho tên trong tên}.
Giải pháp khả dụng sau 3 lần thử