Python 2:
Główna różnica to to, że range() zwraca statyczną tablicę obiektów dla całego zakresu iteracji, natomiast xrange() zwraca iterator (obiekt rangeiterator) dla każdej iteracji osobno w momencie kiedy jest to potrzebne. 

Kiedy używać którego?

Na pewno nie używamy range() dla iteracji idących w miliardy, bo trzeba zapisać w pamięci tablicę na miliardy obiektów, która może wyjść poza pamięć urządzenia.

Gdy chcemy użyć wielokrotnie tego samego zakresu iteracji, wtedy można użyć range:

zakres = range(100)
for i in zakres:
    for j in zakres:
        for k in zakres:
            print(i, j, k)

Tablica statyczna jest w tym wypadku tworzona i zapisana do pamięci tylko raz.

Python 3: 
Nie ma xrange(), a range() zwraca iterator.


© 2024 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci