访问列表python中的字典

时间:2014-11-10 01:48:30

标签: python list dictionary

我创建了这个列表

counterDict = [
  ['countR0', {0:0,1:0,2:0,3:0,4:0,5:0}],
  ['countR1', {0:0,1:0,2:0,3:0,4:0,5:0}],
  ['countR7', {0:0,1:0,2:0,3:0,4:0,5:0}],
  ['countR12', {0:0,1:0,2:0,3:0,4:0,5:0}],
  ['countR14', {0:0,1:0,2:0,3:0,4:0,5:0}],
  ['countR17', {0:0,1:0,2:0,3:0,4:0,5:0}],
  ['countR18', {0:0,1:0,2:0,3:0,4:0,5:0}],
  ['countR19', {0:0,1:0,2:0,3:0,4:0,5:0}],
  ['countR20', {0:0,1:0,2:0,3:0,4:0,5:0}],
  ['countR21', {0:0,1:0,2:0,3:0,4:0,5:0}],
  ['countR22', {0:0,1:0,2:0,3:0,4:0,5:0}]
]

基本上我正在做的是使用我们的系统软件循环上面的内容,该软件包含一些普通python集中没有的额外功能。但无论我们使用python 2.7,我正在做的是使用上面的计数器。然而,我需要计算一堆不同问题的每一行中的值(键)。我似乎无法弄清楚如何正确访问上述内容。只是把它放在一个python编译器中并尝试访问它并且我对它返回的内容感到困惑并不是我所期望的,所以任何有关如何正确访问它的帮助都会非常有帮助。如果我写错了,请告诉我。

2 个答案:

答案 0 :(得分:2)

一个键只能在字典中出现一次,所以如果你想计算键,你将得到0(它不存在)或者当它存在时为1。

要访问字典,counterDict[0][1]会为您提供{0:0,1:0,2:0,3:0,4:0,5:0}。不过我认为你想要的是:

counterDict = {'R0': {0:0,1:0,2:0,3:0,4:0,5:0},
               'R01': {0:0,1:0,2:0,3:0,4:0,5:0}}

现在您可以执行以下操作:

counterDict['R0'][0] # prints 0

要将现有列表转换为以下格式:

counterDict = {r[0][5:]: r[1] for r in counterDict}

答案 1 :(得分:0)

counterDict是一个包含11个元素的列表(顾名思义,它不是一个字典)

counterDict的每个元素也是一个列表,包含两个元素。

counterDict的每个元素的第一个元素是一个字符串,第二个是字典。

counterDict[0]是一个列表:

['countR0', {0:0,1:0,2:0,3:0,4:0,5:0}]

因此counterDict[0][0]是该列表的第一个元素:'countR0'

如果你想要字典,你需要

counterDict[0][1]

{0:0,1:0,2:0,3:0,4:0,5:0}

该词典的一个元素:

counterDict[0][1]['0'] -> 0

我想你可能意味着

counterDict = [
  {'countR0': {0:0,1:0,2:0,3:0,4:0,5:0}}
]

可以让你说

counterDict[0]['countR0']['0']