使用for循环在字典中创建键及其值

时间:2018-05-24 12:55:49

标签: python dictionary-comprehension

我想创建一个字典,其中每个键的名称都是doc1doc2,....,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 :(得分:4)

如果你需要字典理解,那么你必须使用理解语法,而不是语句(理解是表达式):

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"等等键访问的字典比简单列表更好,可以访问用整数键。

答案 1 :(得分:0)

尝试:

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

表示invalid syntax错误。

答案 2 :(得分:0)

如果您希望您的密钥采用表格" doc(num)"然后创建一个字符串 doc_format = "doc{}"

然后运行:

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

答案 3 :(得分:0)

您没有使用正确的dict-comprehension语法,它应该是:

{key, value for key in your_iterable}
  

其中,value可以是key的某个函数,反之亦然

对于你的情况:

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

答案 4 :(得分:0)

你也可以试试这个,

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