Chuyển đến nội dung chính
Mô-đun 6 · Bài học 2 trong tổng số 422/36 trong khóa học~10 min
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}.

Python
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.

Python
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:

Python
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:

Python
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.

Python
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:

Python
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:

Python
{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à:

Python
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ó

tập thể dục#python.m6.l2.e1
Nỗ lực: 0Đang tải…

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`.

Đang tải trình chỉnh sửa…
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

tập thể dục#python.m6.l2.e2
Nỗ lực: 0Đang tải…

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`.

Đang tải trình chỉnh sửa…
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

tập thể dục#python.m6.l2.e3
Nỗ lực: 0Đang tải…

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.

Đang tải trình chỉnh sửa…
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ử