是否有更好的方法来保存这些数据然后是字典词典?蟒蛇

Lan*_*esi 3 python dictionary

我正在创建一个动态数据结构来保存汽车信息.字典看起来像这样:

cars = {'toyota': {'prius': {'transmission':'automatic', 'mpg':30, 'misc':[]}}}
Run Code Online (Sandbox Code Playgroud)

最外面的字典包含汽车品牌(丰田,宝马等),第二个字典包含模型(prius,m5等),内部字典包含汽车的细节.这是保存此信息的最佳方式吗?

我正在构建数据结构并访问它.我真的不能想到另一种方法,但代码看起来有点混乱:

cars['toyota'].setdefault('prius', {}).setdefault('misc', []).append('hello')
Run Code Online (Sandbox Code Playgroud)

Way*_*ner 12

正如贾斯汀所说,课程是理想的.

您可以轻松地执行以下操作:

class Car(object):
    def __init__(self, make, model=None, trans=None, mpg=None, misc=None):
        if make == 'Toyta' and model is None:
            model = 'Prius'
        self.make = make
        self.model = model
        self.transmission = trans
        self.mpg = mpg
        if misc is None:
            self.misc = []
    #other class stuff here
    def __str__(self):
        return "Make: {make} Model: {model} Mpg: {mpg}".format(make=self.make,
                                                               model=self.model,
                                                               mpg=self.mpg)
    def __repr__(self):
        return str(self)

cars = [Car('Toyota', 'Prius', 'Automatic', '30'), 
        Car('Mitsubishi', 'Echo LRX', 'Automatic', '20')]

for car in cars:
    print car
Run Code Online (Sandbox Code Playgroud)

HTH!

  • Python(和类似语言)的优点在于Lance的数据结构是动态的请求仍然适用于类,因为您可以动态添加和删除属性. (2认同)

Jus*_*ini 5

Python有.我不知道你的数据结构是否有意义,但你可以将所有内容组织成一个Car类集合.