Coding for KidsCoding for Kids
Niveluri CreativeProvocăriGhid pentru Profesori
Votează pentru funcții
Curs Avansat de Dezvoltare Python
Capitolul
>
Nivel

Liste Avansate
Comprehensiuni de listă

În acest capitol vom explora noi moduri de a utiliza listele în Python, referitor la optimizare, compartimentare și chiar realizarea unor liste multidimensionale mari, asemanătoare matricelor, care seamănă îndeaproape cu tabelele.

Pentru acest nivel vom lucra cu List Comprehensions, care sunt liste ce pot fi create din alte liste prin selectarea anumitor componente din acestea. Acest lucru se face, de asemenea, într-o singură linie de cod, fără a trebui să introducem manual o listă sau să concepem automatizări complexe.

Guide

Obiectiv

Ia și sortează toate legumele rădăcinoase din cămară pentru a le putea depozita la locul lor corect, folosind list comprehensions.

Cămara are mai multe saci plini cu legume rădăcinoase care trebuie sortate, acestea fiind: potatoes, onions și garlic, iar unele legume pot fi stricte. Scoate legumele bune și depozitează-le în paleții unde aparțin.

Pentru a realiza acest lucru, trebuie să identifici ce obiecte se află în fiecare sac. Există trei constante de tip listă care conțin informațiile fiecărui sac, acestea fiind numite: left_sack, middle_sack, right_sack. Aceste constante de listă corespund sacilor din câmp, în locațiile indicate de numele lor.

Mergi la semnele luminoase X din fața fiecărui sac și folosește funcția speak() pentru a identifica conținutul fiecărui sac, folosind constantele, de exemplu: player.speak(left_sack). Odată ce ai identificat conținutul din fiecare sac, identifică obiectele care trebuie eliminate, cum ar fi legumele care au în denumire: "Bad", "Spoiled" sau "Rotten".

Trebuie să creezi liste noi care să conțină doar obiecte bune pentru consum. Ai putea face acest lucru manual, dar ar dura ceva timp și s-ar putea să devină destul de confuz. Pentru a realiza acest lucru mai eficient, poți crea o listă dintr-o altă listă, cunoscută sub numele de List Comprehension.

Din cele trei constante de listă: left_sack, middle_sack, right_sack creează trei liste noi numite: potatoes, onions și garlic care să nu conțină obiectele nedorite din saci. List Comprehensions îți permit să creezi liste noi fără a scrie un cod foarte îndelungat, de exemplu:

# 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"]

În exemplul de mai sus, lista numită potatoes este creată din lista numită sack, conținând doar ["Potatoes", "Sweet Potatoes"] și excluzând "Spoiled Potatoes". Acest lucru se realizează prin crearea unui loop for auto-conținut, în acest caz folosind x ca index pentru a parcurge lista și instrucțiunile for / in pentru a identifica și exclude elementul nedorit, adică orice șir de caractere care conține cuvântul "Spoiled".

Pentru recapitulare, verifică dacă constantele de listă conțin cuvântul "Bad", "Spoiled" sau "Rotten" în ele, folosind funcția speak(). Creează listele potatoes, onions și garlic folosind List Comprehensions, eliminând elementele nedorite pe care le-ai găsit în fiecare listă.

După ce aceste liste sunt create, mergi la fiecare dintre cele trei semne X aurii din fața paleților cu semnele legumelor și plasează listele, folosind funcția place(), în paleții corespunzători pentru a finaliza nivelul. Locațiile sunt indicate de semne, acestea fiind: onions pe paletul din stânga, potatoes pe cel din mijloc și garlic pe paletul din stânga.

Carte de Cod