Kursus Pembangunan Python Lanjutan
Bab
>
Tahap
Senarai Lanjutan
Pemahaman Senarai
Dalam bab ini, kita akan meneroka cara baharu untuk menggunakan senarai dalam Python, berkaitan dengan pengoptimuman, pengelompokkan dan malah menghasilkan senarai berbilang dimensi yang besar seperti Matriks yang sangat menyerupai jadual.
Untuk tahap ini, kita akan bekerja dengan List Comprehensions, yang merupakan senarai yang boleh dicipta daripada senarai lain dengan hanya memilih komponen tertentu daripadanya. Ini juga dilakukan dengan satu baris kod yang sangat mudah tanpa perlu memasukkan senarai secara manual atau mencipta automasi yang kompleks.

Objektif
Ambil dan susun semua sayur-sayuran akar di dalam dapur simpanan supaya anda dapat menyimpannya di tempat yang betul menggunakan list comprehensions.
Dapur simpanan mempunyai beberapa beg penuh dengan sayur-sayuran akar yang perlu disusun, antaranya: potatoes, onions dan garlic, kemungkinan terdapat sayur-sayuran yang telah rosak. Keluarkan sayur-sayuran yang baik dan simpan dalam peti yang sepatutnya.
Untuk mencapai ini, anda perlu mengenal pasti apa item yang ada di dalam setiap beg, terdapat tiga (3) konstanta senarai yang memegang maklumat bagi setiap beg tersebut, iaitu: left_sack, middle_sack, right_sack. Konstanta senarai ini sepadan dengan beg di medan mengikut lokasi yang dinyatakan oleh nama mereka.
Berjalanlah ke tanda cahaya X di hadapan setiap beg dan gunakan fungsi speak() untuk mengenal pasti kandungan setiap beg dengan menggunakan konstanta tersebut, contohnya: player.speak(left_sack). Setelah anda mengenal pasti kandungan di dalam setiap beg, kenal pasti item-item yang perlu dikeluarkan seperti sayur-sayuran dengan "Bad", "Spoiled" atau "Rotten" dalam nama mereka.
Anda perlu membuat senarai baru yang hanya mengandungi item-item yang baik untuk dimakan, anda boleh melakukannya secara manual tetapi ia akan mengambil masa dan boleh menjadi agak mengelirukan. Untuk mencapai ini dengan lebih berkesan, anda boleh membuat senarai daripada senarai yang lain, ini dikenali sebagai List Comprehension.
Daripada tiga (3) konstanta senarai: left_sack, middle_sack, right_sack buat tiga senarai baru yang dinamakan: potatoes, onions dan garlic yang tidak mengandungi item-item yang tidak dikehendaki dalam beg. List Comprehensions membolehkan anda membuat senarai baru tanpa perlu menulis banyak kod, contohnya:
# Original list sack = ["Potatoes", "Sweet Potatoes", "Spoiled Potatoes" ] # List Comprehension potatoes = [x for x in sack if not "Spoiled" in x] # This will create a list named potatoes with: # ["Potatoes", "Sweet Potatoes"]
Dalam contoh di atas, senarai yang dinamakan potatoes telah dibuat daripada senarai yang dinamakan sack hanya mengandungi ["Potatoes", "Sweet Potatoes"] dan mengecualikan "Spoiled Potatoes". Ini dicapai dengan membuat gelung for yang berdikari, dalam kes ini menggunakan x sebagai indeks untuk melalui senarai dan penyataan for / in untuk mengenal pasti dan mengecualikan elemen yang tidak diingini, iaitu sebarang rentetan yang mempunyai perkataan "Spoiled".
Untuk mengulas semula, periksa jika konstanta senarai mempunyai perkataan "Bad", "Spoiled" atau "Rotten" di dalamnya menggunakan fungsi speak(), buat senarai potatoes, onions dan garlic menggunakan List Comprehensions dengan mengeluarkan elemen yang tidak diingini yang ditemui dalam setiap senarai.
Setelah senarai-senarai ini dibuat, berjalanlah ke setiap tiga (3) tanda X emas di hadapan peti dengan tanda sayur-sayuran, dan letakkan senarai-senarai tersebut, menggunakan fungsi place(), dalam peti yang sepadan untuk menyelesaikan tahap ini. Lokasi telah dinyatakan mengikut tanda, iaitu onions pada peti sebelah kiri, potatoes pada peti tengah dan garlic pada peti sebelah kiri.