Как получить доступ к значениям итерируемого объекта без итерации? - PullRequest
0 голосов
/ 26 апреля 2020

Я очень новичок в программировании, и особенно Python, так что спасибо за терпение с моим невежеством. При использовании функции, которая создает итеративный объект, такой как csv.DictReader () или enumerate (), я, кажется, не могу индексировать отдельные части этого объекта без for-l oop. For-l oop легко разбивает объект на отдельные компоненты, похожие на списки, а затем даже разбивает эти компоненты на более мелкие компоненты, похожие на списки, но я не могу понять, как добраться до этих элементов самостоятельно. Я знаю, что мог бы использовать for-l oop и сохранить каждый фрагмент итерации в новых переменных, но, похоже, должен быть более прямой путь, который я пропускаю. Какой синтаксис использует l oop для индексации этих объектов?

Я пытался, например, с помощью «reader = csv.DictReader (file.csv)», чтобы просто «печатать (читатель)» "(который дает только местоположение объекта в памяти), или получите доступ к" reader [0] "(получая ошибку, что 'reader' не может быть подписан). Если это не по подписке, то как for-l oop разбивает его на части? Создание l oop "для строки в считывателе: print (line)" дает именно те данные, которые я ищу. Я могу еще больше разбить слово «строка», используя «для фигуры в строке: print (шт)». Что же, в точности, означает «линия» и «кусок»? Они не являются «reader [0]» или «line [0]», соответственно. Как я могу индексировать эти данные, не заставляя for-l oop сделать это для меня?

В качестве примечания, я получаю проблемы такого же типа, пытаясь получить доступ к объекту словаря без использования имени ключ. Если я создаю новый словарь с переменными именами ключей на основе предоставленного пользователем файла, то я не могу заранее дать программе названия ключей; но, также, я не могу найти способ индексировать в словарь последовательно, без этих имен. Однако for-l oop не имеет проблем с этим. Я не могу себе представить, что он просто «знает» точные имена ключей словаря заранее, так какой синтаксис он использует для последовательного индексирования в них?

Спасибо за помощь. Я нашел здесь только несколько других вопросов, которые, кажется, связаны с тем, что я спрашиваю, но, похоже, они задают другие, например, c, языки или побуждают к обсуждению более высокого уровня со ссылкой на неясные модули. и функции, которые я не могу понять.

...