@russrage
Я

Перебор Элементов списка в Python?

Господа разъясните пожалуйста, чем отличается:
arr = [1, 2, 3]
i, count = 0, len(arr)
while i < count:
    arr[i] *= 2
    i += 1
print(arr)

от
arr = [1, 2, 3]
i = 0
while i < len(arr):
    arr[i] *= 2
    i += 1
print(arr)
  • Вопрос задан
  • 15022 просмотра
Решения вопроса 3
@fireSparrow
По вашему вопросу уже ответили, а я хочу сказать, что в современном питоне решать такие задачи явным циклом не рекомендуется, для этого есть списковые включения.

Благодаря им ту же задачу можно решить гораздо изящнее:
arr = [1, 2, 3]
arr = [2*i for i in arr]
print(arr)


Так и писать код проще, и тот, кто потом его будет читать сразу понимает, что здесь происходит, и выполняться это будет быстрее.
Ответ написан
Комментировать
DevMan
@DevMan
в 1 размер будет получен однажды, а во 2 на каждой итерации.
Ответ написан
Комментировать
@vilgeforce
Раздолбай и программист
Есть подозрение, что во втором случае длина массива будет вычисляться на каждой итерации.
И да, for i in arr попробуйте ;-)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы