A lista és szótár értelmezése nagyszerű módja a kód hosszának lerövidítésére és olvashatóságának növelésére.

Mi az a lista / diktatúra megértése

A List/Dict Comprehension egy módja annak, hogy a hurkolt effektust kevesebb kóddal emulálja a nyelvén. Mindegyik megfelelő listával vagy diktálással végigpörgethet egy meglévő tömböt vagy szótárt, és új tömböt vagy diktátumot hozhat létre, miközben módosítja a meglévő elemeket. Ha listával és diktatúrával írja meg a kódot, az csökkenti a kódot és javítja az olvashatóságot.

Szintaxislista értelmezése

new_list = [new_item for item in list]
array = [1,2,3,4,5]
* new_array = [i + 1 for i in array] * 
 // new_array = [2,3,4,5,6]

Ebben a példában végighurkoljuk a tömb nevű tömböt, és minden elemhez hozzáadunk egyet. Ezt követően az új elemeket beillesztjük egy új tömbbe, melynek neve new_array. Mindezt egyetlen kódsor alatt megtehetjük!

vs.

A másik módja annak, hogy egy tömbön keresztül hurkoljon, és újat hozzon létre:

new_array = []
for i in array:
   i+= 1
   new_array.append(i)

  // new_array = [2,3,4,5,6]

Amint láthatja, a listaértés használata jelentősen csökkenti a kód hosszát, valamint könnyen olvashatóvá és tisztábbá teszi. Sokkal kevesebb kóddal érheti el ugyanazt az eredményt.

Szintaxis szótár megértése

Ugyanezt megteheti a szótárak esetében is. A diktatúra megértésében is nagy az erő és a rugalmasság.

new_dict = {new_key: new_value for item in list}
names = ["Alex", "John", "Ashley"]
student_scores = {name: random.randint(0,100) for name in names}
// student_scores = {
"Alex": 54,
"John": 78,
"Ashley": 33,

}

Ebben a példában a tömbneveket veszem, és létrehozok egy új diktátumot, amely minden tanuló nevét és egy véletlenszerű egész számot tartalmazza pontszámként. Ismét megtehetjük mindezt egyetlen kódsorban!

További példák

Egy másik módszer, amellyel kiegészíthetjük a listát és a szövegértést, a feltételes feltételek hozzáadása. A feltételes feltételek lehetővé teszik számunkra, hogy kiválasszunk bizonyos elemeket, amelyek követik a feltételt, és az új tömbünkbe vagy új diktátumunkba kerül.

Feltételes lista értése

names = ["Alex", "Beth", "Caroline", "Dave", "Jacoby", "Fred"]
short_names = [name for name in names if len(name) < 5]
// short_names = ["Alex", "Beth" , "Dave", "Fred"]

Ebben a példában csak az 5-nél rövidebb neveket adjuk hozzá az új, rövid neveknek nevezett tömbünkhöz. Az if len(name) ‹ 5 feltételes utasítást használjuk annak kiválasztására, hogy mely neveket szeretnénk az új tömbünkbe.

Feltételes diktált szövegértés

new_dict = {new_key: new_value for (key, value) in dict.items() if test_passes}

student_scores = {‘Josh': 51, 'Alex': 54, 'Faith': 30, 'Ashley': 98, 'Marie': 68, 'Chris': 38}

passed_students = {name: score for (name, score) in student_scores.items() if score > 40}

// passed_students = {‘Josh’: 51, ‘Alex’, 54, ‘Ashley’: 98, ‘Marie’: 68}

Ebben a példában új diktátumot hozok létre egy meglévő, diák_pontszámok nevű diktátumból. Az új, passed_students elnevezésű diktátumban az összes diákot és a hozzájuk tartozó pontszámokat besorolom, ha 40-nél magasabb pontszámot értek el. Azért használom a student_scores.items()-t, mert végignézek rajta. és a meglévő diktátum, és nem egy lista, mint a fenti előző példa.