Từ điển như một tập hợp
Thuộc phần Logic và luồng chương trình trong hành trình GDScript của Coddy. Bài học 32 trên 78.
Để chuyển một mảng thành tập hợp, hãy lặp qua mảng và dùng mỗi giá trị làm khóa. Các giá trị lặp lại sẽ nằm cùng một khóa:
var reports := ["spam", "scam", "spam"]
var banned := {}
for word in reports:
banned[word] = true
print(banned.keys()) # ["spam", "scam"]Để kiểm tra một giá trị có phải là phần tử hay không, hãy dùng has() hoặc toán tử in. Với từ điển, cả hai đều kiểm tra các khóa, không bao giờ kiểm tra các giá trị:
print(banned.has("scam")) # true
print("hello" in banned) # false
print("hello" not in banned) # trueMảng cũng có has(), nhưng phương thức này so sánh giá trị với từng phần tử. Từ điển tìm khóa trực tiếp, vì vậy kiểm tra xem một giá trị có thuộc tập hợp hay không vẫn nhanh ngay cả khi tập hợp có hàng nghìn phần tử.
Vòng lặp for trên tập hợp sẽ duyệt qua các phần tử theo thứ tự chúng được thêm vào:
for word in banned:
print(word) # spam, rồi đến scamThử thách
DễBạn kiểm tra khách ở cửa một bữa tiệc. Chương trình đọc hai dòng đầu vào:
- Danh sách khách: tên được phân cách bằng dấu cách. Một số tên xuất hiện nhiều hơn một lần.
- Những người đến: tên được phân cách bằng dấu cách.
Tạo tập hợp guests từ danh sách khách. In ra số người khác nhau trong danh sách, sau đó in một dòng cho mỗi người đến: NAME: welcome nếu họ có trong danh sách, hoặc NAME: not on the list nếu không. Với đầu vào:
mia leo ana mia
mia sam anađầu ra là:
Guests on the list: 3
mia: welcome
sam: not on the list
ana: welcomeTự làm thử
extends Node
func _ready():
var guest_list := OS.read_string_from_stdin().split(" ", false)
var arrivals := OS.read_string_from_stdin().split(" ", false)
var guests := {}
# Tạo tập hợp khách
# In ra số lượng khách và kiểm tra từng lượt khách đến
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng chương trình
1Chuyên sâu về chuỗi
Các phương thức của chuỗiTìm kiếm trong chuỗiThay thế và xóa khoảng trắngTách và nốiÔn tập: Kiểm tra tên người dùng7Kiểu liệt kê
Kiểu liệt kê là gì?Định nghĩa kiểu liệt kêCác giá trị của kiểu liệt kêKiểu liệt kê trong matchÔn tập: đèn giao thông10Hàm nâng cao
Trả về nhiều giá trịHàm lambda phần 1Hàm lambda phần 2Ôn tập: sắp xếp bằng lambdaHàm đệ quy phần 1Hàm đệ quy phần 2Ôn tập: tính tổng mảng lồng nhau13Hệ thống quản lý hàng tồn kho
Tổng quan dự ánThêm mặt hàng2Ra quyết định nâng cao
So khớp với biếnĐiều kiện bảo vệ trong so khớpMẫu mảngMẫu từ điểnKiểm tra thành viênÔn tập: Bộ phân tích lệnh5Ứng dụng sổ liên lạc
Hiển thị menuThêm liên hệ8Trình quản lý hồ sơ học sinh
Tổng quan dự ánThêm học sinh3Mảng nhiều chiều
Cơ bản về mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuVòng lặp lồng nhau với mảng 2 chiềuÔn tập: mảng 2 chiềuMảng răng cưaCác mẫu phổ biến với mảng 2 chiềuÔn tập: bàn cờ6Tập hợp với từ điển
Tập hợp là gì?Từ điển như một tập hợpThêm và xóaHợp và giaoHiệu tập hợpÔn tập: Xóa phần tử trùng lặp9Tổng hợp dữ liệu nâng cao
Tính tổng các giá trịTìm giá trị nhỏ nhất và lớn nhấtSắp xếp tùy chỉnhÔn tập: Sắp xếp từ điểnTự luyện tập: Trình biên dịch GDScript online