Birleşim ve Kesişim
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 34 / 78.
İki küme, yaygın olarak iki şekilde birleştirilebilir:
- Birleşim, kümelerden herhangi birinde bulunan tüm elemanları içerir.
- Kesişim, yalnızca her iki kümede de bulunan elemanları içerir.
GDScript'te bunlar için operatör yoktur, bu yüzden bunları döngülerle oluşturursun. Birleşim için her iki kümenin elemanlarını yeni bir kümeye ekle. Her iki kümede bulunan bir eleman aynı anahtara denk gelir:
var mia := {"forest": true, "cave": true}
var leo := {"cave": true, "tower": true}
var either := {}
for place in mia:
either[place] = true
for place in leo:
either[place] = true
print(either.keys()) # ["forest", "cave", "tower"]Her değer true olduğu için merged(), tek bir çağrıda aynı birleşimi verir: var either := mia.merged(leo). Yeni bir sözlük döndürür ve mia değişmeden kalır.
Kesişim için bir küme üzerinde döngü kur ve diğer kümenin de sahip olduğu üyeleri tut:
var both := {}
for place in mia:
if leo.has(place):
both[place] = true
print(both.keys()) # ["cave"]Kümelerin ortak elemanı olmadığında kesişim boştur ve both.keys() [] olur.
Görev
Kolayİki oyuncunun her biri bazı becerilerin kilidini açtı. Program, ilk oyuncunun ve ikinci oyuncunun becerilerini içeren, boşluklarla ayrılmış iki satırı okur ve başlangıç kodu first ve second kümelerini oluşturur.
İki kümenin birleşimini ve kesişimini, elemanları , ile birleştirerek yazdır:
All skills:ifadesinin ardından birleşimi yazdır: ilk oyuncunun becerilerini, sonra ikinci oyuncunun yeni becerileriniShared skills:ifadesinin ardından kesişimi, ilk oyuncunun sırasına göre yazdır; ortak becerileri yoksanoneyazdır
Şu girdi için:
jump dash
dash swimçıktı şöyledir:
All skills: jump, dash, swim
Shared skills: dashKendin dene
extends Node
func _ready():
var first := {}
for skill in OS.read_string_from_stdin().split(" ", false):
first[skill] = true
var second := {}
for skill in OS.read_string_from_stdin().split(" ", false):
second[skill] = true
# Birleşimi ve kesişimi oluştur
# Sonuçları yazdır
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1String’leri Derinlemesine İnceleme
String MetotlarıString’lerde AramaDeğiştirme ve KırpmaBölme ve BirleştirmeTekrar: Kullanıcı Adı Kontrolü4Sözlükler Bölüm 2
İç İçe SözlüklerSözlük DizileriSözlükleri BirleştirmeSözlükleri KopyalamaTekrar - Frekans Sayacı10İleri Düzey Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Dizilerin Toplamı13Envanter Yönetim Sistemi
Projeye Genel BakışÜrün Ekle2İleri Düzey Karar Verme
Değişkenlerle EşleştirmeEşleştirme KoşullarıDizi KalıplarıSözlük KalıplarıÜyelik KontrolleriÖzet - Komut Ayrıştırıcı5Rehber Uygulaması
Menüyü GörüntüleKişi Ekle8Öğrenci Kayıt Yöneticisi
Proje Genel BakışıÖğrenci Ekle11Üst Düzey Fonksiyonlar
map Metodufilter Metodureduce Metoduany ve allTekrar - E-posta DoğrulayıcıTekrar - Sayı İşleyici3Çok Boyutlu Diziler
2B Dizilere Giriş2B Dizi Elemanlarına Erişim2B Dizilerle İç İçe DöngülerTekrar - 2B DizilerDüzensiz DizilerYaygın 2B Dizi ÖrüntüleriTekrar - Oyun Tahtası6Sözlüklerle Kümeler
Küme Nedir?Küme Olarak SözlükEkleme ve SilmeBirleşim ve KesişimKüme FarkıTekrar: Yinelenenleri Silme9Gelişmiş Veri Toplama
Değerleri ToplamaEn Küçük ve En Büyük Değeri BulmaÖzel SıralamaÖzet - Sözlük SıralayıcıKendi başına pratik yap: Online GDScript derleyicisi