Бруно уже объяснил, почему понимание списков может быть неидеальным, но я хотел подчеркнуть некоторую разницу между списками и диапазонами.
Важно отметить, что list
и range
имеют некоторые разные функции и методы. Поэтому ответ на вопрос «какой из них лучше» зависит от вашего приложения.
Преимущества диапазона
Диапазон является повторяемым и не должен хранить все числа в памяти. Например, Python не имеет проблем с range(int(1e20))
, но list(range(int(1e20)))
выдаст ошибку.
Диапазон также можно запрашивать гораздо эффективнее. Сравните следующий фрагмент кода:
>>> from timeit import timeit
>>> timeit("100 in numbers",setup='numbers=range(10000)')
0.1061642
>>> timeit("100 in numbers",setup='numbers=list(range(10000))')
1.2257957
В этом случае диапазон для запроса в 10 раз быстрее, и эта разница будет увеличиваться только для больших списков.
Преимущества списка
Самая большая разница в том, что список может содержать объекты любого типа. Поэтому, если вы хотите, чтобы ваши числа были плавающими, то это более простое решение.
Кроме того, оно позволяет добавлять или удалять отдельные записи. Так что, если вам нужно упорядочить свои номера, список может быть проще.