Gelişmiş Python Geliştirme Kursu
Bölüm
>
Seviye
Gelişmiş Listeler
İç İçe Liste Oluşturma
Amaç
İç içe listeler kullanarak baharatları baharatlıkta düzgün bir şekilde saklayın.
Baharatlıklardan biri boş ve doğru şekilde yeniden stoklanması gerekiyor, depoda baharatlar var ancak uygun şekilde yerleştirilip düzenlenmeleri ve baharatlıkta konumlandırılmaları gerekiyor.
Öğelerin çokluğu ve bir baharatlıktaki farklı raflarda depolanmaları nedeniyle, normal listeler ve sözlükler yeterli olmayacak. Bu gibi durumlarda, içinde bir veya daha fazla liste bulunan İç İçe Listeler kullanabilirsiniz.
Baharatları saklamak için önce öğeleri düzgün bir şekilde depolayacak kavanozları almanız gerekir; altın X işaretine yürüyün, kutuya dönün ve depolamayı kolaylaştırmak için collect() fonksiyonunu kullanarak "empty jar" öğesini alın.
Kavanozlar toplandıktan sonra, ahşap kutuların önündeki açık X işaretlerine yürüyün. Bu seviyede her kutu için biri olmak üzere toplam dört (4) liste sabiti bulunmaktadır: crate1, crate2, crate3 ve crate4. Her kutunun içeriğini belirlemek için bu liste sabitlerini kullanarak speak() fonksiyonunu kullanın; sabitler sağdan sola doğru kutulara karşılık gelir, örneğin player.speak(crate1).
Kutu içeriklerini belirledikten sonra, liste sabitleri içindeki gereksiz öğeler olmadan yeni listeler oluşturmak için List Comprehensions kullanın. Bir kutunun içeriğinde: "package", "string" veya "stuffing" bulunuyorsa, listeleri düzenlemek için önceki bölümde kullanılan formülü kullanın, örneğin:
crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]
Yukarıdaki kod, içinde "string" kelimesini içermeyen öğelerden oluşan yeni bir liste oluşturacaktır. Listelerin isimleri: herbs, spices, salts ve sugars olmalıdır; çünkü listelerin içindeki öğeler bu isimleri taşımaktadır.
Dört liste oluşturulduktan sonra, hepsini bir İç İçe Liste içinde birleştirmenin zamanı gelmiştir. seasonings adında bir liste oluşturun ve oluşturduğunuz listeleri yeni listenin içine ekleyin, şöyle:
seasonings = [ ] seasonings.append(herbs) .......
Tüm öğeler İç İçe Liste içine yerleştirildikten sonra, yeşil halı üzerindeki koyu X işaretine yürüyün ve rafa dönün. Her rafdaki öğeleri doğrulamak için seasonings iç içe listesini kullanarak speak() fonksiyonunu kullanın. Ardından place() fonksiyonunu liste ile birlikte kullanarak seviyeyi tamamlayın, şöyle: player.speak(seasonings).