Küme Farkı
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 35 / 78.
İki kümenin farkı, ilk kümede olup ikinci kümede olmayan üyeleri içerir. İlk küme üzerinde döngü kur ve ikincide olmayanları tut:
var needed := {"rope": true, "torch": true, "map": true}
var packed := {"torch": true, "apple": true}
var missing := {}
for item in needed:
if not packed.has(item):
missing[item] = true
print(missing.keys()) # ["rope", "map"]Kümelerin sırası önemlidir. packed ile needed arasındaki fark ["apple"] şeklindedir: paketlediğin ama ihtiyaç duymadığın şey.
İki fark birlikte simetrik farkı oluşturur: kümelerden yalnızca birinde bulunan elemanlar. Burada bunlar rope, map ve apple.
Hiçbir şeyin eksik olmadığını kontrol etmek için has_all() bir dizi alır ve dizinin her öğesi sözlüğün bir anahtarı olduğunda true döndürür:
print(packed.has_all(needed.keys())) # false: rope ve map eksikGörev
KolayBir yolculuktan önce, ihtiyacın olanları yanına aldıklarınla karşılaştırırsın. Program, ihtiyacın olan öğeleri ve yanına aldığın öğeleri içeren, boşluklarla ayrılmış iki satırı okur ve başlangıç kodu needed ve packed kümelerini oluşturur.
Üyeleri , ile birleştirerek iki satır yazdır:
Missing:ardından yanına almadığın, ihtiyacın olan öğelerExtra:ardından ihtiyacın olmayan, yanına aldığın öğeler
Üzerinde döngü kurduğun kümenin sırasını koru. Boş bir liste yerine none yazdır. Girdi:
rope torch map
torch appleçıktı:
Missing: rope, map
Extra: appleKendin dene
extends Node
func _ready():
var needed := {}
for item in OS.read_string_from_stdin().split(" ", false):
needed[item] = true
var packed := {}
for item in OS.read_string_from_stdin().split(" ", false):
packed[item] = true
# İki fark kümesini 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