代码之家  ›  专栏  ›  技术社区  ›  Ankita Patnaik

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

  •  -5
  • Ankita Patnaik  · 技术社区  · 6 年前

    我想创建一个字典,其中每个键都有如下名称 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 回复  |  直到 6 年前
        1
  •  4
  •   holdenweb    6 年前

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

    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”等键访问dict比使用整数键访问的简单列表更好。

        2
  •  0
  •   Xantium    6 年前

    尝试:

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

    为您的 invalid syntax 错误

        3
  •  0
  •   letroot    6 年前

    如果希望密钥采用“doc(num)”格式,请创建一个字符串 doc_format = "doc{}"

    然后运行:

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

        4
  •  0
  •   akshat    6 年前

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

    {key, value for key in your_iterable}
    

    其中,值可以是 key 反之亦然

    对于您的情况:

    docs = {"doc{}".format(i + 1): Finance.documents[i] for i in range(len(Finance.documents))}
    
        5
  •  0
  •   Narendra Prasath    6 年前

    你也可以试试这个,

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