GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Python ABC
  • View project on GitHub

This view

  • Original page
  • New address

GeezerVison is showing pythonitalia.github.io — Iterabili e Iteratori

Iterabili e Iteratori

Prima di approfondire gli oggetti iterabili assicurati di conoscere le liste, set e dizionari.

In Python qualunque oggetto in grado di essere trattato come una sequenza è definito un oggetto iterable (iterabile).

L’oggetto restituito dalla funzione range() è un iterabile.

>>> for a in range(3):
...   print(a)
0
1
2

Una lista, un set o le chiavi di un dizionario sono iterabili:

>>> our_iterable=('alpha', 'beta', 'gamma')
>>> for i in our_iterable:
...     print(i)
...
alpha
beta
gamma
>>> filled_dict = {"uno": 1, "due": 2, "tre": 3}
>>> our_iterable = filled_dict.keys()
>>> for i in our_iterable:
...     print(i)
due
uno
tre

Nel caso del dizionario è possibile utilizzare anche la forma compatta:

>>> for i in filled_dict:
...     print(i)
due
uno
tre

Tuttavia non è possibile recuperarne i valori di un iterabile tramite indice

>>> our_iterable[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'dict_keys' object does not support indexing

Un oggetto iterabile è in grado di generare un iteratore

>>> our_iterator = iter(our_iterable)
>>> type(our_iterator)
<class 'dict_keyiterator'>

L’iteratore è un oggetto che ricorda il suo stato mentro lo si “attraversa”.

Possiamo accedere al successivo elemento con next().

>> next(our_iterator) 
"uno"

Un iteratore mantiene il suo stato mentro eseguiamo l’iterazione

next(our_iterator)
"due"
next(our_iterator)
"tre"

Dopo che un iteratore ha restituito tutti i suoi dati, genera un’eccezione StopIteration

>>> next(our_iterator)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

Puoi “prendere” tutti gli elementi di un iteratore utilizzando list().

>>> list(filled_dict.keys())
["one", "two", "three"]

This content is a derivative of “Learn X in Y minutes” by adambard, used under a CC BY-SA 3.0 license.

Python ABC
  • Principali Riferimenti Online
  • Per iniziare
  • Pyllole
    • Installare Python
    • Come usare Python
    • Ambiente di sviluppo
    • Sintassi
    • Variabili
    • Print
    • Input
    • If - Else
    • Cicli
    • Tipi: Numeri
    • Tipi: Stringhe
    • Tipi: Boolean
    • Tipi: None
    • Tipi: Liste
    • Tipi: Tuple
    • Tipi: Set
    • Tipi: Dizionari
    • Try - Except
    • Funzioni
    • Moduli
    • Iterabili e Iteratori
    • List Comprehension
    • Classi
    • Ereditarietà (Inheritance)
    • Ereditarietà multipla
    • Lo Zen di Python
  • Strumenti Online
  • Documentazione Gratuita

python-abc is maintained by pythonitalia.

This page was generated by GitHub Pages.

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.