Создание ключей и их значения внутри словаря с использованием цикла for - PullRequest
0 голосов
/ 24 мая 2018

Я хочу создать словарь, в котором каждый ключ будет иметь имена типа doc1, doc2, ...., doc2105, и в нем будут храниться значения от Title_Loans.documents[0], Title_Loans.documents[1], ...., Title_Loans.documents[2104].Я пытаюсь запустить цикл for длиной (Title_Loans.documents) внутри словаря, но он показывает ошибку:

for i in range(len((Finance.documents)):
      ^
SyntaxError: invalid syntax

Ниже приведен код, который я запускаю.Пожалуйста, предложите мне, как это можно сделать.Код: Пример:

docs = {
    'doc1': Title_Loans.documents[0],
    'doc2': Title_Loans.documents[1],
    'doc3': Title_Loans.documents[2],
    'doc4': Title_Loans.documents[3],
    'doc5': Title_Loans.documents[4]
}

Попытка выполнить код выше, используя цикл for для большого размера документа.

docs = {
for i in range(len((Finance.documents)):
    doc[i]: Finance.documents[i]
    }

Ответы [ 5 ]

0 голосов
/ 24 мая 2018

Вы также можете попробовать это,

doc = {}
for i in range(len(Finance.documents)):
   doc[i] = Finance.documents[i]
print(doc)
0 голосов
/ 24 мая 2018

Вы не используете правильный синтаксис dict-понимание , это должно быть:

{key, value for key in your_iterable}

, где значение может быть некоторой функцией key или наоборотВерсия

Для вашего случая:

docs = {"doc{}".format(i + 1): Finance.documents[i] for i in range(len(Finance.documents))}
0 голосов
/ 24 мая 2018

Попробуйте:

for i in range(len(Finance.documents)):

для вашей invalid syntax ошибки.

0 голосов
/ 24 мая 2018

Если вы хотите, чтобы ваши ключи приняли форму «doc (num)», то создайте строку doc_format = "doc{}"

, затем выполните:

docs = {doc_format.format(index+1): Finance.documents[index] for index in range(len(Finance.documents))}

0 голосов
/ 24 мая 2018

Если вам нужно словарное понимание, тогда вы должны использовать синтаксис понимания, а не оператор (выражения - это выражения):

docs = {"doc"+str(i): Finance.documents[i]
        for i in range(len(Finance.documents))}

Однако это было бы гораздо лучше записать как

docs = {"doc"+str(i): documt for (i, documt) in enumerate(Finance.documents)}

Я не уверен, однако, почему диктовка, к которой можно обращаться с помощью клавиш типа "doc1", "doc2" и т. Д., Лучше простого списка, к которому можно обращаться с помощью целочисленных клавиш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...