|
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 12
|
|||||||||||||||||||||
Вложенный цикл чудачит17.04.2017, 22:24. Показов 1671. Ответов 14
Метки нет (Все метки)
Добрый день,
подскажите, что не так с циклом - работает при ручном вводе и сыпется при изменении входных данных. Там две проблемы, но они, наверное, связаны как-то. Рабочий вариант:
0
|
|||||||||||||||||||||
| 17.04.2017, 22:24 | |
|
Ответы с готовыми решениями:
14
Начать вложенный цикл не с первого элемента и по условию вернуться в основной цикл Почему не работает цикл for in range . То есть for in range не повторяет вложенный в него цикл while Вложенный цикл while |
|
|
||
| 17.04.2017, 22:48 | ||
|
Вы не можете изменить переменную цикла. Она, конечно меняется, но на следующей итерации for будет все равно использовать следующее значение из списка. А в вашем случае вы просто временно создаете ей новое значение и в следующем цикле тут же его выводите. Нафига? А вообще для прохода по двум спискам сразу используют zip\zip_longest (from itertools)
0
|
||
|
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 12
|
|
| 17.04.2017, 23:05 [ТС] | |
|
zip посмотрю, спасибо - хотя мне всё равно не ясно, почему цикл работает при ручном вводе и не работает из файла.
А с переменной, = 1 - чем она отличается от предыдущего условия? Я же всё равно при каждом новом проходе цикла присваиваю новое значение для nombre1 - почему оно сохраняется, если это выражение, и не сохраняется, если это численное значение?
0
|
|
|
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
|
|
| 17.04.2017, 23:07 | |
|
По сути ты читаешь за проход два кортежа, один в mot1 другой в nombre1, как кортеж можно сравнить с числом?
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 12
|
|
| 17.04.2017, 23:18 [ТС] | |
|
Т.е., теоретически, я могу создать ещё один кортеж, заполненный нулями или единицами и брать значения оттуда?
0
|
|
|
|
||||||
| 17.04.2017, 23:26 | ||||||
|
Пример с zip_longest
P.S. Возможно ваша задача решается еще проще, но ее цели туманны как берега Альбиона.
1
|
||||||
|
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 12
|
|
| 17.04.2017, 23:40 [ТС] | |
|
Спасибо - надо про zip почитать, я пока не очень соображаю, в чём он принципиально отличается от списков.
А задача простая: сравнить два списка, в каждом из которых есть слова и их рейтинг, для совпадающих слов найти разницу рейтингов, остальные как-то пометить как несовпадающие.
0
|
|
|
|
|||||||
| 18.04.2017, 00:20 | |||||||
Сообщение было отмечено argkh как решение
Решение
Пример той же задачи чтения данных из файла:
Только вместо явного использования файла - у меня файловый объект в памяти. В своем коде вместо StringIO используйте просто open(f), а имена файлов передавайте в at1 и at2.
Сравните свой longest код чтения из файла с моим примером. Функциональный подход явно компактнее. И при этом сама процедура обхода списков не претерпела никаких изменений.
1
|
|||||||
|
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 12
|
|||||||||||
| 18.04.2017, 00:42 [ТС] | |||||||||||
|
Но получается, что он в этом варианте чувствителен к позиции элемента в списке, т.е. сравнивает первый блок только с первым, второй - только со вторым и т.д.?
0
|
|||||||||||
|
|
||
| 18.04.2017, 01:08 | ||
|
Из вашей задачи я не сделал вывода, что требуется иное. В таком случае нужно действительно либо перебирать все списки декартовым произведением: то есть вложенными for-ами, либо искать другой подход. Пока не придумал как без циклов обойтись.
0
|
||
|
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 12
|
|
| 18.04.2017, 01:16 [ТС] | |
|
Да, я запоздало сообразил, что у меня в первом примере совпадающие имена на одних и тех же позициях. То есть, возвращаюсь к исходному вопросу - отчего вложенный цикл проходит только по первой позиции в списке.
Мне цикл ещё тем удобнее (и понятнее, честно говоря), что в итоге я хочу сравнивать список из файла, at2 скажем, с списком at1, который мне будет возвращать функция.
0
|
|
|
|
||||||
| 18.04.2017, 01:29 | ||||||
Сообщение было отмечено argkh как решение
Решение
Решение для любых позиций элементов. Обход по словарю - принципиально ничего не поменялось, просто сравнивать совпадающие ключи удобнее через словарь.
1
|
||||||
|
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 12
|
|
| 18.04.2017, 01:41 [ТС] | |
|
Без словаря, значит, никак.
Спасибо, попробую допилить, чтобы в d2 загружать выход функции, там обычный список.
0
|
|
|
|
||||||||||||
| 18.04.2017, 18:48 | ||||||||||||
Петя, 116, Коля, 220, Маша, 221то он легко в словарь трансформируется:
Если список в виде кортежей, то еще проще:
0
|
||||||||||||
|
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 12
|
||||||
| 18.04.2017, 20:44 [ТС] | ||||||
|
На самом деле, всё ещё проще, оказывается: я от функции принимаю
Но с zip всё равно надо будет разобраться.
0
|
||||||
| 18.04.2017, 20:44 | |
|
Помогаю со студенческими работами здесь
15
Рефакторинг кода: вложенный цикл for Получение значений по ключу, через вложенный цикл Необходимо через вложенный цикл for создать новый одномерный список, который бы содержал все значения заданного сп Почему не работает цикл for in range . То есть он не повторяет вложенный в него цикл while Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|