Thêm và xóa
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 33 trên 78.
Để thêm một phần tử, hãy gán true cho khóa của phần tử đó. Thêm một phần tử đã có trong tập hợp sẽ không làm thay đổi gì. Vì vậy, nếu bạn cần biết phần tử đó có mới hay không, hãy kiểm tra trước bằng has():
var inventory := {"rope": true}
if inventory.has("torch"):
print("Already have torch")
else:
inventory["torch"] = true
print("Added torch")Để xóa một phần tử, hãy gọi erase(). Hàm này trả về true khi phần tử đã được xóa và false khi phần tử đó không có trong tập hợp. Phần tử không tồn tại không bao giờ gây ra lỗi:
print(inventory.erase("rope")) # true
print(inventory.erase("map")) # false
print(inventory) # { "torch": true }Vì erase() trả về giá trị boolean, bạn có thể dùng trực tiếp giá trị đó làm điều kiện: if inventory.erase("map"): chỉ chạy khối lệnh khi "map" là một phần tử.
clear() xóa mọi phần tử, size() đếm số phần tử và is_empty() có giá trị true khi tập hợp không có phần tử nào.
Thử thách
DễChương trình đọc các lệnh, mỗi lệnh trên một dòng, cho đến dòng done. Mỗi lệnh có dạng add ITEM hoặc remove ITEM. Code khởi đầu đã tách mỗi lệnh thành action và item.
- Với
add: nếu món đồ chưa có, hãy thêm nó vào tập hợpinventoryvà in raAdded ITEM. Nếu không, hãy in raAlready have ITEM. - Với
remove: nếu món đồ có trong tập hợp, hãy xóa nó và in raRemoved ITEM. Nếu không, hãy in raNo ITEM to remove.
Sau done, in ra Inventory: theo sau là các phần tử được nối bằng , , hoặc Inventory: empty khi tập hợp trống. Với đầu vào:
add torch
add rope
add torch
remove map
remove rope
doneđầu ra là:
Added torch
Added rope
Already have torch
No map to remove
Removed rope
Inventory: torchTự làm thử
extends Node
func _ready():
var inventory := {}
while true:
var command := OS.read_string_from_stdin()
if command == "done":
break
var parts := command.split(" ")
var action := parts[0]
var item := parts[1]
# Thêm hoặc xóa vật phẩm
# In ra danh sách vật phẩm
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