/ / Ako to urobiť / dict porozumenie v pythone - python, slovník, porozumenie zoznamu

Ako urobiť tento zoznam / dict porozumenie v python - python, slovník, zoznam - porozumenie

Vytváram pythonový slovník takto:

d= {i : chr(65+i) for i in range(4)}

Teraz výstup d je {0: "A", 1: "B", 2: "C", 3: "D"}

Mám zoznam kľúčov, ktoré chcem vyhľadať takto:

l = [0, 1]

Teraz chcem urobiť ďalší zoznam, ktorý obsahuje hodnoty zodpovedajúce týmto kľúčom, a chcel som vedieť, či existuje pythonický spôsob, ako to urobiť pomocou porozumenia zoznamu alebo diktátu.

Môžem urobiť niečo takto:

[x for x in d[0]]

Neviem však, ako opakovať položky tohto zoznamu v tomto nastavení. Skúsil som:

[x for x in d[a] for a in l] # name "a" not defined
[x for x in d[for a in l]] # invalid syntax

odpovede:

3 pre odpoveď č. 1

Chcete opakovať l, tak použite for element in l, Potom vyhľadajte obsah vo svojom slovníku na ľavej strane vo výraze produkujúcom hodnotu:

[d[element] for element in l]

Všimnite si, že slovník mapujúci po sebe idúce celé čísla začínajúce od 0 po písmená nie je tak efektívny; môžete tiež vytvoriť zoznam:

num_to_letter = [chr(65 + i) for i in range(4)]

To stále mapuje 0 na "A", 1 na "B"atď., ale bez kroku hashovania.