我想保存一个包含某些属性的记录的表, 例如
Name gender Age
----------------
Josh Male 22
所以我可以轻松访问所有记录并更改属性, 保存这些数据最简单的方法是什么? , 在C ++中我使用双向量。 如果你有python或java的解决方案请告诉我:)
答案 0 :(得分:1)
您可以尝试使用dictionary
,如下所示:
attributes = ['Name', 'Gender', 'Age']
values = ['Josh', 'Male', 22]
>>> my_dict = dict(zip(attributes,values))
>>> print my_dict
{'Name': 'Josh', 'Gender': 'Male', 'Age': 22}
如果您要获得更多价值,可以改为:
values = [['Josh','Helen'], ['Male','Female'], [22,"I'd rather not tell"]]
>>> my_dict = dict(zip(attributes,values))
>>> print my_dict
{'Name': ['Josh','Helen'], 'Gender': ['Male','Female'], 'Age': [22,"I'd rather not tell"]}
>>> print my_dict['Name']
['Josh','Helen']
>>> print my_dict['Gender'][1]
Female
答案 1 :(得分:0)
完全取决于您希望如何访问它。如果您只想在当前正在运行的程序中访问它,那么可以执行矢量
data = []
keys = ['Name', 'Gender', 'Age']
persons = (("Josh", "Male", 22), )
for person in persons:
data.append(dict(zip(keys, person)))
然后您可以这样访问它:
>>> data[0]
{'Name': 'Josh', 'Gender': 'Male', 'Age': 22}
>>> data[0]['Name']
Josh
甚至更好
from collections import namedtuple
n = namedtuple('Person', ('name', 'gender', 'age'))
persons = (("Josh", "Male", 22), )
for person in persons:
data.append(Person(person))
然后你可以做
>>> p = data[0]
>>> p.name
Josh
但是,您无法修改元组,因此您必须创建一个新人并将该人存储在旧人的位置。
如果您想要更好地控制访问数据的方式(例如数据库样式查询,更高级/更简单的过滤),可能需要查看模型和查询集:例如https://docs.djangoproject.com/en/dev/ref/models/querysets/。