我是python的新手,我已经陷入数据类型问题。
我有一个看起来有点像这样的脚本 dd = defaultdict(列表) 对于我在arr: DD [颜色] .append(I)
创建一个类似于
行的默认字典dd = [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
但是我现在需要访问第一个列表([2,4])。我试过了
print(dd[0])
但这个游戏我输出以下内容
[][][]
我知道defaultdict中有数据,因为我已经完整地打印了它。然而,除了通过其字典索引访问第一个项目,我不知道如何访问它。但是,除了通过字典键访问列表之外,我不知道如何获取它。但是,在填充字典之前,我不知道密钥的名称。
我已经考虑过创建一个列表列表而不是一个defaultdict但是能够通过key搜索对于代码的另一部分非常有用,所以我想尽可能地维护这个数据结构。
有没有办法按索引号抓取列表,还是只能使用密钥?
答案 0 :(得分:3)
您可以获取密钥列表,按索引选择密钥,然后访问该密钥。
print(dd[dd.keys()[0]])
答案 1 :(得分:1)
请注意,Python中的字典是无序集合。这意味着键的顺序是未定义的。请考虑以下示例:
from collections import defaultdict
d = defaultdict (int)
d['a'] = 1
d['b'] = 2
d['c'] = 3
d['d'] = 4
d['e'] = 5
print (d)
我的Python2给出了:
defaultdict(<type 'int'>, {'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4})
Python3输出的方式不同:
defaultdict(<class 'int'>, {'c': 3, 'b': 2, 'a': 1, 'e': 5, 'd': 4})
因此,您必须使用其他方法来记住填充字典的顺序。按照您需要的顺序维护单独的键(颜色)列表,或使用OrderedDict。