Python 表示关系数据库:字典列表还是具有列表值的字典?

Python 表示关系数据库:字典列表还是具有列表值的字典?,python,database,dictionary,Python,Database,Dictionary,关系数据库有一个模式和一组记录 我有两种用Python表示关系数据库的方法: 创建具有相同键集的字典列表,其中键是架构的属性名称,每个字典表示一条记录 创建一个字典,其中其键是模式的属性名称,每个键的值是记录中相应属性的值列表 我想知道哪种方法更容易操作,或者有更容易使用的功能?哪种方式的工作方式更类似于关系数据库 Python是否有其他(更好的)数据结构/类型来表示相同的内容 例如 关系数据库是一个表: name age Joe 10 Mary 6 Tim 8 第一种方法是

关系数据库有一个模式和一组记录

我有两种用Python表示关系数据库的方法:

  • 创建具有相同键集的字典列表,其中键是架构的属性名称,每个字典表示一条记录

  • 创建一个字典,其中其键是模式的属性名称,每个键的值是记录中相应属性的值列表

我想知道哪种方法更容易操作,或者有更容易使用的功能?哪种方式的工作方式更类似于关系数据库

Python是否有其他(更好的)数据结构/类型来表示相同的内容

例如

关系数据库是一个表:

name  age
Joe   10
Mary  6
Tim   8 
第一种方法是

[{name:Joe,age:10}, {name:Mary,age:6}, {name:Tim,age:8}]
{name:[Joe,Mary,Tim],age:[10,6,8]}
第二种方法是

[{name:Joe,age:10}, {name:Mary,age:6}, {name:Tim,age:8}]
{name:[Joe,Mary,Tim],age:[10,6,8]}

谢谢。

哪种方法更容易操作,或者有更容易使用的功能应用
-这取决于您将对数据执行的操作。在关系数据库中的类似操作方面,我认为,我将使用第一种方法列出数据库中的记录(或对一组行执行任何操作,例如筛选器),并使用第二个操作对DB的特定列应用操作(这是您之前的问题所处理的)。为什么会这样?@Shashanker,因为在大多数Python实现中,通过列表进行迭代是有效的。如果您对一组行应用操作(如将所有行打印到网页上,或根据年龄过滤行等),则速度更快(性能方面)且更干净(尤其是由于列表的理解)使用方法1。如果所需的操作需要应用于表中的一列,那么您只需迭代方法2中提供的列表,例如,向每个年龄添加2就是简单的
d['age']=[a+2表示d['age']]
,这是Pythonic。