Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:Get list by index not key in defaultdict_Python_Python 2.7_Defaultdict - Fatal编程技术网

Python:Get list by index not key in defaultdict

Python:Get list by index not key in defaultdict,python,python-2.7,defaultdict,Python,Python 2.7,Defaultdict,我是python新手,在数据类型问题上陷入了困境 我有一个脚本,看起来有点像这样 dd=默认DICT(列表) 对于arr中的i: dd[color].追加(i) 它创建了一个默认的dict,类似于 dd = [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])] 但是我现在需要访问第一个列表([2,4])。我试过了 print(dd[0]) 但是这个游戏给了我以下的输出 [][][] 我知道defaultdict中有数据,因为我已经完整地打

我是python新手,在数据类型问题上陷入了困境

我有一个脚本,看起来有点像这样 dd=默认DICT(列表) 对于arr中的i: dd[color].追加(i)

它创建了一个默认的dict,类似于

dd = [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
但是我现在需要访问第一个列表([2,4])。我试过了

print(dd[0])
但是这个游戏给了我以下的输出

[][][]
我知道defaultdict中有数据,因为我已经完整地打印了它。然而,除了通过字典索引访问第一项之外,我不知道如何访问它。然而,除了通过字典键访问列表之外,我不知道如何获取它。但是,在填充dict之前,我不知道密钥的名称

我考虑过创建一个列表列表,而不是一个defaultdict,但是能够通过key进行搜索对于代码的另一部分非常有用,所以如果可能的话,我希望维护这个数据结构


有没有办法通过索引号获取列表,或者只能使用键来获取列表?

您可以获得一个键列表,按索引选择键,然后访问该键

print(dd[dd.keys()[0]])

您可以获得一个键列表,按索引选择键,然后访问该键

print(dd[dd.keys()[0]])

请注意,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)
我的蟒蛇2给出:

defaultdict(<type 'int'>, {'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4})
defaultdict(,{'a':1,'c':3,'b':2,'e':5,'d':4})
Python3的输出方式不同:

defaultdict(<class 'int'>, {'c': 3, 'b': 2, 'a': 1, 'e': 5, 'd': 4})
defaultdict(,{'c':3,'b':2,'a':1,'e':5,'d':4})

因此,您必须使用其他方法来记住填充词典的顺序。或者按照需要的顺序维护一个单独的键(颜色)列表,或者使用它。

请注意,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)
我的蟒蛇2给出:

defaultdict(<type 'int'>, {'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4})
defaultdict(,{'a':1,'c':3,'b':2,'e':5,'d':4})
Python3的输出方式不同:

defaultdict(<class 'int'>, {'c': 3, 'b': 2, 'a': 1, 'e': 5, 'd': 4})
defaultdict(,{'c':3,'b':2,'a':1,'e':5,'d':4})
因此,您必须使用其他方法来记住填充词典的顺序。按照您需要的顺序维护一个单独的键(颜色)列表,或者使用。

dd.keys()[0]
引发
TypeError:“dict\u keys”对象不可订阅
dd.keys()[0]
引发
TypeError:“dict\u keys”对象不可订阅