从字典中检索列表

时间:2014-03-08 21:53:01

标签: python dictionary

我的列表mydicts = []包含

[{'Frank': {'Jack': 0, 'Kevin': 0, 'Sam': 0},
    'Sam': {'Frank': 0, 'Jack': 0, 'Kevin': 0},
    'Kevin': {'Frank': 0, 'Jack': 0, 'Sam': 0},
    'Jack': {'Frank': 0, 'Kevin': 0, 'Sam': 0} }]

然而,我试图以这种格式获取它,以便我执行一些操作:

d = {'Frank': {'Jack': 0, 'Kevin': 0, 'Sam': 0},
'Sam': {'Frank': 0, 'Jack': 0, 'Kevin': 0},
'Kevin': {'Frank': 0, 'Jack': 0, 'Sam': 0},
'Jack': {'Frank': 0, 'Kevin': 0, 'Sam': 0} }

我试过这个

sm_list = list(mydicts)
d = sm_list

但它没有用。我该如何解决?

3 个答案:

答案 0 :(得分:4)

您只需使用list indices:

即可访问它
my_dicts = [{'Frank': {'Jack': 0, 'Kevin': 0, 'Sam': 0},
    'Sam': {'Frank': 0, 'Jack': 0, 'Kevin': 0},
    'Kevin': {'Frank': 0, 'Jack': 0, 'Sam': 0},
    'Jack': {'Frank': 0, 'Kevin': 0, 'Sam': 0} }]

d = my_dicts[0]

注意:

  • [...]的正确名称是列表,而不是数组。

  • 访问my_dicts[0],即可访问第一个元素。使用my_dicts[1],您将访问第二个元素。等等。

  • 执行list(mydicts)时,由于my_dicts已经是列表,因此无法生效。

答案 1 :(得分:2)

您可以通过以下方式解决此问题:

d = mydicts[0]

这将返回mydicts中的第一个值,这正是您想要的。

答案 2 :(得分:1)

你可以通过检索数组中的第一个(也是唯一的)元素来获得你想要的东西 - 这已经是Python所谓的list - 因为它正是你所寻求的。列表/数组中的第一个元素是索引为0的元素。

mydicts = [{'Frank': {'Jack': 0, 'Kevin': 0, 'Sam': 0},
            'Sam': {'Frank': 0, 'Jack': 0, 'Kevin': 0},
            'Kevin': {'Frank': 0, 'Jack': 0, 'Sam': 0},
            'Jack': {'Frank': 0, 'Kevin': 0, 'Sam': 0},}]

d = mydicts[0]

print "d's contents: {"
for k, v in d.iteritems():
    print '    {}: {},'.format(k, v)
print '}'

输出:

d's contents: {
    Frank: {'Sam': 0, 'Jack': 0, 'Kevin': 0},
    Sam: {'Frank': 0, 'Jack': 0, 'Kevin': 0},
    Kevin: {'Frank': 0, 'Jack': 0, 'Sam': 0},
    Jack: {'Frank': 0, 'Sam': 0, 'Kevin': 0},
}