Trường ĐH Công nghệ – Đại học Quốc gia Hà Nội
|
Cú pháp
|
Ví dụ
|
Thực thi (đơn giản hoá):
>>> lst = [1, 2]
>>> lst_iterator = iter(lst)
>>> next(lst_iterator)
1
>>> next(lst_iterator)
2
>>> next(lst_iterator)
StopIteration
Lặp trả về key theo thứ tự chèn (Python ≥ 3.7).
>>> dct = {'b': 2, 'a': 1}
>>> d_iterator = iter(dct)
>>> next(d_iterator)
'b'
>>> next(d_iterator)
'a'
>>> next(d_iterator)
StopIteration
for x in it:
body
for key in d: # khuyến nghị
...
# hoặc (không cần thiết)
for key in d.keys():
...
for val in d.values():
...
# hoặc qua key
for key in d:
val = d[key]
...
for (key, val) in d.items():
# xử lý với cả key và value
...
def print_counts(counts):
"""In biểu đồ ngang cho dict 'counts' ánh xạ ký tự -> số lần."""
for char in counts:
count = counts[char]
print(char + ' ' + '*' * count)
>>> print_counts({'a': 2, 'b': 2, '!': 1})
a **
b **
! *
>>> s = {1, 2, 3}
>>> 1 in s
True
>>> 0 in s
False
>>> s.add(0); s
{0, 1, 2, 3}
>>> s.add(1); s # thêm trùng bị bỏ qua
{0, 1, 2, 3}
>>> s.remove(0); s
{1, 2, 3}
Dấu ngoặc nhọn { } (giống dict và toán học).
Set cũng là iterable:
def print_set(s):
for item in s:
print(item)
def uniq_chars(s):
"""Trả về set chứa các ký tự duy nhất của chuỗi s."""
uniq = set() # tạo set rỗng
for char in s:
uniq.add(char)
return uniq
>>> uniq_chars('couscous')
{'o', 'u', 's', 'c'}
>>> # cách ngắn gọn hơn cho ví dụ trước
>>> set('couscous')
{'o', 'u', 's', 'c'}
>>> set([1, 1, 2, 3])
{1, 2, 3}
| List | Dictionary | Set | |
|---|---|---|---|
| Cú pháp | [ ] | {key: value} | {item, ...} hoặc set() |
| Thứ tự | ✅ Có | ⚠️ Theo thứ tự chèn | ❌ Không |
| Trùng lặp | ✅ Cho phép | ❌ Key duy nhất | ❌ Không |
| Truy cập | Chỉ số | Khoá | Chỉ kiểm tra thuộc (in) |
| Dùng khi | Danh sách có thứ tự | Bảng tra cứu key → value | Loại bỏ trùng, kiểm tra thuộc nhanh |