Array berisi Dictionary
Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 20 dari 78.
Jika kamu memiliki banyak record dengan field yang sama, simpan semuanya dalam array of dictionaries: setiap elemen adalah satu record.
var enemies := [
{"type": "slime", "hp": 30},
{"type": "orc", "hp": 80},
{"type": "dragon", "hp": 500}
]Indeks memilih record dan key memilih field: enemies[1]["type"] bernilai "orc". for loop memberimu satu dictionary pada setiap perulangan:
for enemy in enemies:
if enemy["hp"] >= 80:
print(enemy["type"])orc
dragonTambahkan record dengan append(). Untuk mengubah field setiap record, lakukan assignment melalui variabel loop. Seperti array, dictionary digunakan bersama, bukan disalin, jadi enemy adalah dictionary di dalam array dan perubahan akan tetap tersimpan di sana:
enemies.append({"type": "bat", "hp": 10})
for enemy in enemies:
enemy["hp"] += 5
print(enemies[3]) # { "type": "bat", "hp": 15 }Untuk menemukan record berdasarkan salah satu field-nya, lakukan perulangan dan bandingkan. Mulailah dengan null, agar kamu bisa mengetahui jika tidak ada yang cocok:
var found = null
for enemy in enemies:
if enemy["type"] == "orc":
found = enemy
if found == null:
print("No orc")
else:
print(found["hp"]) # 85print() menampilkan seluruh array beserta setiap dictionary di dalamnya: [{ "type": "slime", "hp": 35 }, ...].
Tantangan
MudahBuat papan peringkat. Program membaca bilangan bulat n, lalu n baris, masing-masing berisi nama pemain dan skor yang dipisahkan dengan koma, seperti Mia,95.
- Untuk setiap baris, tambahkan dictionary dengan kunci
"name"(nama) dan"score"(skor sebagaiint) ke arrayplayers. - Cetak array tersebut.
- Cetak
Best:, nama pemain dengan skor tertinggi dan skornya dalam tanda kurung. Jika dua pemain memiliki skor tertinggi yang sama, cetak pemain yang pertama.
Untuk input 3, Mia,95, Leo,80, dan Ana,97, output-nya adalah:
[{ "name": "Mia", "score": 95 }, { "name": "Leo", "score": 80 }, { "name": "Ana", "score": 97 }]
Best: Ana (97)Coba sendiri
extends Node
func _ready():
var n := int(OS.read_string_from_stdin())
var players := []
# Baca n pemain ke dalam array
# Cetak array dan pemain terbaik
pass
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami String
Method untuk StringMencari dalam StringMengganti dan Menghapus SpasiMemisahkan dan MenggabungkanUlasan: Memeriksa Nama Pengguna4Dictionary Bagian 2
Dictionary BersarangArray berisi DictionaryMenggabungkan DictionaryMenyalin DictionaryRangkuman: Penghitung Frekuensi10Fungsi Lanjutan
Mengembalikan Beberapa NilaiFungsi Lambda Bagian 1Fungsi Lambda Bagian 2Ringkasan: Mengurutkan dengan LambdaFungsi Rekursif Bagian 1Fungsi Rekursif Bagian 2Ringkasan: Menjumlahkan array Bersarang13Sistem Manajemen Inventaris
Ikhtisar ProyekTambahkan Barang2Pengambilan Keputusan Lanjutan
Pencocokan dengan VariabelGuard pada MatchPola arrayPola dictionaryPemeriksaan KeanggotaanUlasan: Parser Perintah5Aplikasi Buku Kontak
Tampilkan MenuTambah Kontak8Pengelola Data Siswa
Gambaran Umum ProyekTambah Siswa11Fungsi Tingkat Tinggi
Method mapMethod filterMethod reduceany dan allUlasan: Validator EmailUlasan: Pemroses Angka3Array Multidimensi
Dasar-Dasar Array 2DMengakses Elemen Array 2DNested Loop dengan Array 2DRangkuman: Array 2DArray Tidak BeraturanPola Umum Array 2DRangkuman: Papan Permainan6Set dengan Dictionary
Apa Itu Set?Dictionary sebagai SetMenambahkan dan MenghapusUnion dan IntersectionSelisih SetRangkuman: Menghapus DuplikatLatihan sendiri: Compiler GDScript online