strumento che ci permette di creare in modo conciso e conveniente nuove liste, set, e dizionari partendo da una sequenza (range o stringhe) di valori esistenti

sintassi



esempi:

  • lista
  • list comprehension che crea una lista di quadrati
    [x**2 for x in range(10)]
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]



  • set
  • set comprehension che crea un set di cubi
    {x**3 for x in range(10)}
    {0, 1, 64, 512, 8, 343, 216, 729, 27, 125}



  • dizionari
  • dict comprehension che mappa lettere lowercase all'equivalente uppercase
    {c: c.upper() for c in 'abcde'}
    {'c': 'C', 'e': 'E', 'a': 'A', 'b': 'B', 'd': 'D'}




    si tratta di un modo automatico di create insiemi

    per esempio la comprehension tipo list
    squares = [x**2 for x in range(10)]
    squares
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]


    é come fare questo ciclo for
    squares = [] lista vuota da creare sempre (obbligatorio)
    for x in range(10):
    squares.append(x**2)

    squares
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]



    possibile aggingere istruzioni