【问题标题】:Best way to store dictionary items for later retrieval? [duplicate]存储字典项目以供以后检索的最佳方式? [复制]
【发布时间】:2019-02-04 08:21:16
【问题描述】:

我正在执行一项相当复杂的任务,即读取 Python 模型,然后对其执行各种任务,然后将其写为单独的 XML 文件。但是,除此之外,我还需要根据各个 python 模型包含的内容提供各种摘要文件。

在 Ruby 中,我只需将这些数据存储在一个结构中,然后解析数据数组。在 Python 中,字典等价于 struct,但在我的测试中对我来说并不明显的是如何添加到字典中的值,以便如果我有:

name: "John"
place: "Atlanta"
age: "18"

所有这些都整齐地放入字典中。但是下一条记录呢?

当我使用更新时,它会用新数据替换字典项。所以我想,然后我会使用一个列表来简单地将列表附加到我的字典数据中。但是,当我附加列表时(因为我对字典使用了更新),我的列表现在包含所有相同数据的列表。

存储多个字典项以便以后可以像单个记录一样访问它们的正确 Python 方法是什么?我想也许是一个元组,但这似乎也没有让我走得太远,所以我显然做错了什么。

【问题讨论】:

  • 只创建一个新字典而不是更新旧字典?

标签: python python-2.7


【解决方案1】:

我会列出一个包含字典的列表,所以结果会是这样的:

struct = [{"name": "John", "place": "Atlanta", "age": "18"}, {"name": "Mary", "place": "New York", "age": "22"}]

然后您可以例如循环遍历列表并打印这样的值;

for ls in struct:
    print("Name:", ls["name"])
    print("Place:", ls["place"])
    print("Age:", ls["age"])

【讨论】:

  • 这是我想要的,但我想在每次迭代后添加到列表中。这是我失败的地方。所以在你的例子中,我有约翰的数据。然后在下一次迭代中,我将获得 Mary 的数据。我正在使用可以修复它的全局思维,但是如果我使用: mylist.append(myDictionary) 它确实会添加一个新列表项,但我的字典项都已更改。再说一次,我想我只是在这里遗漏了一些基本的东西。
猜你喜欢
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
相关资源
最近更新 更多