Gelişmiş Python Geliştirme Kursu
Bölüm
>
Seviye
Gelişmiş Listeler
Kümelerin Sıralanması
Amaç
Setleri kullanarak malzemeleri sıralayıp düzenleyerek yemekleri organize et ve pişir.
Biraz yiyecek hazırlamaya başlamak iyi bir fikir olacaktır; buzdolabında birkaç malzeme, ayrıca yemeğe tat katacak bazı otlar bulunuyor. Tüm malzemeler listelerde saklanıyor, bu yüzden malzemeleri birleştirmek ve yemek pişirmenin verimliliğini artırmak için Sets kullanmak iyi bir fikir olacaktır.
Üç (3) liste sabiti bulunmaktadır, bunlardan ikisi (2) et, isimleri: pack1 ve pack2, ve biri (1) yemek malzemeleri, ismi ingredients. Turuncu halı üzerindeki koyu X işaretine doğru ilerleyin ve buzdolabına bakın, buzdolabından pack1 ve pack2'yi toplamak için collect() fonksiyonunu kullanın, şöyle: player.collect(pack1).
Et toplandıktan sonra, açık X işaretine doğru ilerleyin ve kesme tahtasına bakın; burada topladığınız her iki liste sabiti ile speak() fonksiyonunu kullanarak paketlerin içeriğini doğrulayacağız. Bundan sonra, önceki seviyede olduğu gibi Sets kullanarak malzemeleri birleştireceğiz. set1 ve set2 adında iki Set oluşturun ve set() fonksiyonunu kullanarak pack1 ve pack2'yi onlara atayın, örneğin: set1 = set(pack1).
Listeler Sets haline getirildikten sonra, malzemeleri daha küçük Sets'lere ayırıp sıralama zamanı gelmiştir.
Bunu başarmanın ilk yöntemi systemic_difference olarak adlandırılır; bu, her bir Set arasında paylaşılmayan öğeleri ayırmamızı sağlar. unique adında bir Set oluşturun ve systemic_difference kullanarak iki Set'i karşılaştırıp benzersiz öğeleri belirleyin, şöyle: unique = set1.symmetric_difference(set2). Oluşturduğunuz Set'in içeriğini doğrulamak için speak() metodunu kullanın.
Ardından, sıralama için shared adında bir Set oluşturun ve önceki seviyede öğrendiğiniz intersection metodunu kullanarak her iki Set'de bulunan öğeleri belirleyin. İki Set'i karşılaştırıp öğeleri belirlemek için şöyle yapın: shared = set1.intersection(set2). Oluşturduğunuz Set'in içeriğini doğrulamak için speak() metodunu kullanın.
Son olarak, sadece bir Set'te bulunan ve diğerinde bulunmayan öğeleri ayırmamıza olanak sağlayan difference metodunu kullanın. meat1 ve meat2 adında iki (2) Set oluşturun; orijinal iki Set'i karşılaştırıp öğeleri difference kullanarak belirleyin, şöyle: meat1 = set1.difference(set2) ve meat2 = set2.difference(set1). Oluşturduğunuz her iki et Set'inin içeriğini doğrulamak için speak() metodunu kullanın.
Böylece etler sıralandı. Mavi halı üzerindeki koyu X işaretine doğru ilerleyin, buzdolabına bakın ve oluşturduğunuz shared Set'i saklamak için place() fonksiyonunu kullanın, şöyle: player.place(shared). Böylece pişirmediğiniz malzemeleri kaldırmış olacaksınız.
Altın X işaretine doğru ilerleyin, dolaba bakın ve collect() fonksiyonunu kullanarak ingredients adlı son liste sabitini edinin; içeriğini doğrulamak için speak() fonksiyonunu kullanın. ingredients içindeki öğeleri yeni set3 adında bir Set'e aktarın. Artık tüm malzemelere sahip olduğunuza göre, yemek pişirmek için gerekli tüm öğeleri birleştiren union metodunu kullanarak meal1 ve meal2 adında iki Set oluşturun.
meal1 için, set3 ve meat1'i şöyle birleştirin: meal1 = set3.union(meat1). Mor halı üzerindeki koyu X işaretine doğru ilerleyin ve meal1 Set ile speak() fonksiyonunu kullanarak içeriği doğrulayın, ardından tencerede yemeği pişirmek için place() fonksiyonunu kullanın.
meal2 için de aynısını yapın, ancak bunun yerine set3 ve meat2'yi union metodu ile birleştirin. Sarı halı üzerindeki koyu X işaretine doğru ilerleyin ve tencereye bakın; speak() ve place() fonksiyonlarını kullanarak meal2 ile seviyeyi tamamlayın.