字典是正确的数据结构吗?

Is a dictionary the right data structure for this?

我想使用一种数据结构来存储我的数据:

data[1][a]
data[1][b]
data[1][c]
data[1][d]
data[2][a]
data[2][b]

... 从一开始就知道标签 a、b、c、d,而 i 遍历列表中的 1、2、...。

我考虑过使用字典:

dict={} #How to initialize the dictionary ?

mylist=(1, 2, ...)
for i in mylist:
    dict[i][a]=something
    dict[i][b]=something_else
    etc

1) 它是最好用的数据结构吗?否则你会用什么? 2) 如果使用字典结构如何用标签 a, b, c & d 初始化字典?

我建议一个词典列表。我建议您替换建议的迭代:

for i in mylist:
    dict[i][a]=something

有了这个:

for elem in list_of_dicts:
    elem[a] = something

如果由于某种原因,你确实需要列表索引,你可以这样做:

for i, elem in enumerate(list_of_dicts):
    elem[a] = something # or list_of_dicts[i][a] = something

关于您关于初始化的问题。

list_of_dicts = list()
list_of_dicts.append( { a : b, c : d } )
list_of_dicts.append( { e : f, g : h } )

如果你想使用字典获取数据[1][a]。你可以有一个字典的字典并像这样初始化。

dict={}

mylist=(1, 2, 3)
labels = ('a','b','c','d')
something = 'foo'

for i in mylist:
    for l in labels:
        if(i in dict):
            dict[i].update({l:something})
        else:
            dict[i] = {l:something}