Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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 如何访问字典中的元素?_Python_Dictionary - Fatal编程技术网

Python 如何访问字典中的元素?

Python 如何访问字典中的元素?,python,dictionary,Python,Dictionary,我有一个包含许多键的字典,我想将键的每个元素存储为列表列表 dict = {'d': [[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']], 'm': [[4.2, 12, 'p5'], [4.8, 25, 'p6'], [4.3, 3, 'p7'], [8.9, 29, 'p8']], 's': [[8.6, 42, 'p9'], [9.7, 46, 'p10']], 'g'

我有一个包含许多键的字典,我想将键的每个元素存储为列表列表

dict = {'d': [[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']],
        'm': [[4.2, 12, 'p5'], [4.8, 25, 'p6'], [4.3, 3, 'p7'], [8.9, 29, 'p8']],
        's': [[8.6, 42, 'p9'], [9.7, 46, 'p10']],
        'g': [[4.3, 56, 'p11'], [5.1, 8, 'p12']]}
k=[]
for i in range(len(dict)):
    k.append(dict['d'][i])
print k
  • 预期输出:
    [[5.5,42',p1'],[3,17',p2'],[3,8',p3'],[2.8,3',p4']

  • 电流输出:
    [2.8,3',p4',[5.5,42',p1'],[3,17',p2'],[3,8',p3'],[…]

请给我一些建议,或者至少给我指出正确的方向。提前感谢。

只需使用索引访问:

k = dict['d']
或者,如果您想要列表的副本:

k = dict['d'][:]

我不知道为什么要使用循环,但您需要的值是
dict
中的键
d
的值。您可以通过以下方式访问它:

>>> my_dict = {'d':[[5.5,42,'p1'],[3,17,'p2'],[3,8,'p3'],[2.8,3,'p4']],'m':[[4.2,12,'p5'],[4.8,25,'p6'],[4.3,3,'p7'],[8.9,29,'p8']],'s':[[8.6,42,'p9'],[9.7,46,'p10']],'g':[[4.3,56,'p11'],[5.1,8,'p12']] }

>>> my_dict['d']
[[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']]

注意:不要使用
dict
作为变量名,因为它是Python中的内置类型

现在,您的字典中的每个键都已经是列表列表。正如Daniel指出的,每个关键点都指向它引用的列表

如果您要查找的是词典中所有列表的列表,您只需执行以下操作:

>>> di = {'d':[[5.5,42,'p1'],[3,17,'p2'],[3,8,'p3'],[2.8,3,'p4']],'m':[[4.2,12,'p5'],[4.8,25,'p6'],[4.3,3,'p7'],[8.9,29,'p8']],'s':[[8.6,42,'p9'],[9.7,46,'p10']],'g':[[4.3,56,'p11'],[5.1,8,'p12']] }
>>> [value for value in di.values()]
[[[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']], [[4.2, 12, 'p5'], [4.8, 25, 'p6'], [4.3, 3, 'p7'], [8.9, 29, 'p8']], [[8.6, 42, 'p9'], [9.7, 46, 'p10']], [[4.3, 56, 'p11'], [5.1, 8, 'p12']]]

现有的答案已经以更好的方式解决了您的问题,但我想指出您犯的错误:如果您使用
range(len(dict['d'))
而不是
range(len(dict))
,您将得到所需的结果,[3,8,'p3'],[2.8,3,'p4'],[5.5,42,'p1'],[3,17,'p2'],[3,8,'p3'],[…]]而不是[5.5,42,'p1'],[3,17,'p2'],[3,8,'p3'],[2.8,3,'p4']