С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/75: Рейтинг темы: голосов - 75, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 17.08.2017
Сообщений: 142

Почему не стоит использовать for i in range(len(spisok)

29.07.2019, 20:23. Показов 14803. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На другом сайте в комментариях увидел:

"Никогда! Слышите?! Никогда! Так не пишите!
Python
1
for i in range(len(spisok)):
За такое сразу руки отрывать нужно."

Ну и почему это плохо,может тот кто писал сам новичок?
Сам это не использовал , но причина очень интересна.

P.S: Не использовал выделение кода т.к. кнопки не прожимаются и не выделяется код.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2019, 20:23
Ответы с готовыми решениями:

Что можно использовать вместо len input, int, float print range?
писал тест по питону , препод сказал что нельзя использовать len input, int, float print range , чем их всех можно заменить?

Range(len(file) - где ошибка
Здравствуйте, знатоки! Прошу вашей помощи. Есть текстовый файл, из него с помощью range нужно вывести все слова по порядку с новой строчки...

Почему стоит использовать Membership API?
В чём, собственно, преимущества?

10
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
29.07.2019, 20:32
потомучто есть enumerate, хотя может есть и какие то более веские причины
P.S. Не использовал ник в ответ и цитату из-за проблем форума
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.07.2019, 20:35
Welemir1, ник в ответ
Цитата Сообщение от Welemir1 Посмотреть сообщение
цитату из-за проблем форума
Цитата.

Смайлег
Python
1
# теги python
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
29.07.2019, 20:39
ну нету((( не веришь чтоль? не появляется "цитата", при клике на ник он не появляется в окне, кнопки формы ничего не выдают, не могу сделать оффтоп.
в консоли (свежее сафари на свежей макос мохаве):
ReferenceError: Can't find variable: vB_Editor (это про ник)
ReferenceError: Can't find variable: fetch_object(это про цитату)
0
1 / 1 / 0
Регистрация: 17.08.2017
Сообщений: 142
29.07.2019, 20:49  [ТС]
У меня кроме ввода текста ничего не работает.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.07.2019, 20:52

Не по теме:

Welemir1, да я без претензий, форум действительно подглючивает. Уже несколько раз натыкался на подобные посты.



Добавлено через 1 минуту
ЗЫ: Опера, линукс
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
29.07.2019, 21:12
Цитата Сообщение от David099 Посмотреть сообщение
Ну и почему это плохо
Не то чтобы прям плохо - не совсем питонично. Так как есть enumerate, у которого имеются некоторые преимущества.
Если загуглить enumerate vs range можно найти подробные обсуждения за и против того или иного варианта на stackoverflow.

Не по теме:

Цитата Сообщение от iSmokeJC Посмотреть сообщение
ЗЫ: Опера, линукс
Опера, винда. Тоже все норм.

0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.07.2019, 21:26

Не по теме:

Garry Galler, промежуточный вывод - опера рулит!

0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
30.07.2019, 02:16
Цитата Сообщение от David099 Посмотреть сообщение
Ну и почему это плохо
Глупости все это. Питон, это язык для комфортного программирования. Поэтому, как Вам удобнее, так и пишите. В одних случаях бывает удобнее использовать
Python
1
for i in range(len(spisok)):
в других enumerate.
Например, когда в одном проходе используется работа с несколькими индексами, то неизбежно извлечение элемента из списка по индексу, и использование enumerate не логично, так как второй элемент в паре не используется. Так же не логично enumerate, когда используется метод перегрузки операции индексирования.
В общем не засоряйте себе голову, а пишите как Вам удобнее, и что бы Ваш код был для Вас наиболее нагляден, а оптимизацию оставте для С-шников

Добавлено через 21 минуту
Хотя допускаю, что при разработке крупного проекта, когда существует дефицит Си-шников, и вынуждены весь проект осуществлять на питоне, тогда есть потребность в оптимизации, и в этом случае требуются профессиональные питонисты, которые с опытом накопили достаточно знаний, что бы писать оптимизированный по скорости питоновский код.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
30.07.2019, 12:50
David099, ну ясен пень, что for i in spisok короче и более абстрактно, но иногда может приспичить и с номером перебрать, но это для чего-то уж очень нестандартного.
0
431 / 302 / 90
Регистрация: 03.12.2015
Сообщений: 741
31.07.2019, 09:45
Цитата Сообщение от David099 Посмотреть сообщение
"Никогда! Слышите?! Никогда! Так не пишите!
Потому что, обычно, далее идет код, в котором по этому индексу получают сами элементы.
Python
1
2
for i in range(len(spisok)):
    используем spisok[i]
Более питонично это сделать так:
Python
1
2
for elem in spisok:
    используем elem
А если нужен еще и индекс элемента списка
Python
1
2
for index, elem in enumerate(spisok):
    используем elem и index
Но на самом деле, бывает необходимость написать именно так (через range и len), если Ваш алгоритм основан на использовании индексов - например, нужно записывать значения в списке по их индексу.

Вот пример кода для переворачивания списка (операция reverse). Такая функция в питоне есть, но если бы ее пришлось делать вручную, то это могло бы выглядеть как-то так:
Python
1
2
for index in range(len(spisok)/2):
    spisok[index], spisok[-(index+1)] = spisok[-(index+1)], spisok[index]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.07.2019, 09:45
Помогаю со студенческими работами здесь

Почему не стоит использовать using namespace std
Хотел еще узнать, почему большенство не используете using namespace std; ? А пишут его в каждой строчке кода. std::cin >> a; ...

Почему не стоит использовать ^(XOR) в swap
Прочитал статейку, http://betterexplained.com/articles/swap-two-variables-using-xor/ Что-то не до понял, почему нельзя...

Почему не стоит использовать стили для скрулла? (IE)
scrollbar-face-color и прочие

Где стоит использовать bootstrap и стоит ли вообще использовать CSS фреймворки?
Здравствуйте. Лично я ужасаюсь ковырять стили, когда к сайту подключен bootstrap и мало понимаю, чем он хорош вообще. В данной теме я бы...

Описать функцию FillStr(S,Len), возвращающую строку длины Len, заполненную повторяющимися копиями строки-шаблона S
Описать функцию FillStr(S,Len) строкового типа, возвращающую строку длины Len, заполненную повторяющимися копиями строки-шаблона S...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru