List 字典列表?

List 字典列表?,list,dictionary,List,Dictionary,我需要创建一个类似于链表数组的结构(其中pythonlist=array和dictionary=linked list)。我有一个名为blocks的列表,这是我想要做的: 块[0]={dictionary}、{dictionary}、{dictionary}、… 块[1]={dictionary}、{dictionary}、{dictionary}、… 等等 目前,我构建的块如下所示: blocks=[] 块。追加[()] 块。追加[()] 块。追加[()] 块。追加[()] 我知道那看起来一定

我需要创建一个类似于链表数组的结构(其中python
list=array
dictionary=linked list
)。我有一个名为
blocks
的列表,这是我想要做的:
块[0]={dictionary}、{dictionary}、{dictionary}、…

块[1]={dictionary}、{dictionary}、{dictionary}、…

等等

目前,我构建的块如下所示:
blocks=[]

块。追加[()]

块。追加[()]

块。追加[()]

块。追加[()]

我知道那看起来一定很可笑。我只是在脑子里看不到那是怎么回事,这也是我的问题的一部分。我从不同的字典项列表中分配给一个块。下面是如何创建单个块的简要概述

hold={}

hold['file']=file

hold['count']=count

hold['mass']=mass\u-lbs

mg1.追加(保留)

##此附加可以多次发生在
mg1

blocks[i].append(mg1[j])

##其中,
i
是我要附加到的块的索引,
j
是对应于我要获取的
mg1
的任何字典项的列表索引


我希望在
块中使用这四个主要索引的原因是,我只需要一个列表,而不是
块1
块2
块3
块4
,这只会使代码比现在长。

好的,结束评论中讨论的内容,您正在寻找一种简单的方法来创建一个由四个项组成的列表,其中每个项都是一个字典列表,其中一个列表中的所有字典都具有相同的键,但不一定具有相同的值。但是,如果你确切知道每一个字典有哪些密钥,而且它们永远不会改变,那么考虑让它们成为包装字典的类,并将四个列表中的每一个都作为对象列表是值得的。这将更容易在你的头脑中保持,在我看来有点像蟒蛇。您还可以确保字典中的键是静态的,另外还可以定义帮助器方法。通过模拟容器类型的方法,您仍然可以使用字典语法

class BlockA:
    def __init__(self):
        self.dictionary = {'file':None, 'count':None, 'mass':None }
    def __len__(self):
        return len(self.dictionary)
    def __getitem__(self, key):
        return self.dictionary[key]
    def __setitem__(self, key, value):
        if key in self.dictionary:
            self.dictionary[key] = value
        else:
            raise KeyError
    def __repr__(self):
        return str(self.dictionary)

block1 = BlockA()
block1['file'] = "test"
block2 = BlockA()
block2['file'] = "other test"
现在,您可以保证第一个块对象的所有实例都具有相同的关键点,并且没有额外的关键点。您可以为其他块创建类似的类,或者一些通用类,或者使用继承将两者混合。现在制作数据结构:

blocks = [ [block1, block2], [], [], [] ]
print(blocks) # Or "print blocks" if you're not using Python 3.x
blocks[0][0]['file'] = "some new file"
print(blocks)

为这个blocks容器创建一个类也是值得的,该类具有用于添加每种类型的块和访问每种类型的块的特定方法。这样,您就不会因为在四个列表中的一个列表中意外添加了错误类型的块或类似问题而绊倒自己。但是,这取决于您将使用这种结构的程度,这可能有些过分。

您能否更具体地说明您想要回答的问题是什么?您是否正在寻找实现代码,是否有一些不确定的代码,或者是否有一些使用此模式的代码需要重构以使用此结构?
blocks.append[()]
在python中没有意义<代码>块。追加([])很有意义。那么问题出在哪里呢?:)对不起,我弄错了。实际上,我在代码中使用了([])。把它倒过来。我想要的是一个包含四个元素的列表,每个元素都有自己的字典列表。现在,我需要访问块索引中的所有“count”项,但我不断遇到语法错误。我假设我当前创建块的方法是不正确的。好吧,如果您的dict被命名为
a
b
c
d
,那么它将是
块=[[a]、[b]、[c]、[d]
。但我不确定我是否完全理解你到底想要实现什么。最好包含一些使用这种假设结构的代码,这样我们就可以看到您正在尝试做什么。