字典是否适合这种数据结构?

时间:2016-08-29 14:14:49

标签: python dictionary data-structures label

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

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

... 标签a,b,c,d从一开始就知道了,而我只是从列表中的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和amp;来初始化字典。 d?

2 个答案:

答案 0 :(得分:1)

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

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}

答案 1 :(得分:0)

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

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 } )