【问题标题】:Iterating over a dictionary inside a list迭代列表中的字典
【发布时间】:2022-01-15 08:44:54
【问题描述】:
dic_list = []

for stuff in range(1):
    dic_list.append([{"Word": "Zawurdo!!!", "Meaning": "Nothing Really", "Synonym": "Nope", "Antonym": "LoL! Does Not exist"}, {"Word": "Duwardooo!!!", "Meaning": "Nothing", "Synonym": "Nope!!!", "Antonym": "Does Not exist"}])
    print(dic_list, "\n")

for i in range(len(dic_list)):
    print(f"Number {i}: ")
    for key, value in dic_list[i].items():
        print(f"{key}: {value}")

Traceback (most recent call last):
  File "c:\Users\ASUS\OneDrive\Desktop\PythonAndMathsForMachineLearning\first.py", line 9, in <module>
    for key, value in dic_list[i].items():
AttributeError: 'list' object has no attribute 'items'

所以,这是我试图运行的代码,用于迭代我的字典并访问其中的所有值。但是我没有得到这些值,而是遇到了一个错误。 关于如何解决此问题的任何想法?

【问题讨论】:

  • dic_list 是字典列表。 ` dic_list.append([` - 将字典列表附加到` dic_list`
  • 删除内部列表级别:dic_list.append([{ ... }]) to dic_list.append({ ... })
  • 你也把所有的字典都放在了一个列表中,你不需要那个
  • 使用dic_list.extend(...) 而不是dic_list.append(...)

标签: python dictionary


【解决方案1】:

您将附加一个list。这就是为什么当你循环它时,它会返回一个list

所以你必须把它改成:

dic_list.append({"Word": "Zawurdo!!!", "Meaning": "Nothing Really", "Synonym": "Nope", "Antonym": "LoL! Does Not exist"})
dic_list.append({"Word": "Duwardooo!!!", "Meaning": "Nothing", "Synonym": "Nope!!!", "Antonym": "Does Not exist"})

【讨论】:

    【解决方案2】:

    dic_list 是代码中的字典列表。 dic_list.append - 将字典列表附加到 dic_list

    由于您想一次将多个字典附加到您的dic_list,您可以改用list.extend()

    dic_list = []
    
    for stuff in range(1):
        dic_list.extend([{"Word": "Zawurdo!!!", "Meaning": "Nothing Really", "Synonym": "Nope", "Antonym": "LoL! Does Not exist"}, {"Word": "Duwardooo!!!", "Meaning": "Nothing", "Synonym": "Nope!!!", "Antonym": "Does Not exist"}])
        print(dic_list, "\n")
    
    for i in range(len(dic_list)):
        print(f"Number {i}: ")
        for key, value in dic_list[i].items():
            print(f"{key}: {value}")
    

    这将打印 -

    的预期输出
    [{'Word': 'Zawurdo!!!', 'Meaning': 'Nothing Really', 'Synonym': 'Nope', 'Antonym': 'LoL! Does Not exist'}, {'Word': 'Duwardooo!!!', 'Meaning': 'Nothing', 'Synonym': 'Nope!!!', 'Antonym': 'Does Not exist'}]
    
    Number 0:
    Word: Zawurdo!!!
    Meaning: Nothing Really
    Synonym: Nope
    Antonym: LoL! Does Not exist
    Number 1:
    Word: Duwardooo!!!
    Meaning: Nothing
    Synonym: Nope!!!
    Antonym: Does Not exist
    

    【讨论】:

    • 啊,终于明白了!非常感谢大家。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 2012-09-01
    • 1970-01-01
    相关资源
    最近更新 更多