在列出的pythondi中访问密钥和vals

2024-03-28 23:43:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个包含第0个元素的列表k:

k[0]: {'pattern': 0, 'pos': array([   9.83698,  106.539  ,  130.314  ]), 'id': 1922}

(这看起来像是一个口述,但实际上是一个单子) 当我迭代列表k的第0个元素并打印出每个元素时:

^{pr2}$

=>;输出:

pattern
pos
id

我不仅想访问键,还想访问值。怎么做? 我也尝试过使用zip和izip将列表转换回dict,但结果相同…即只打印密钥,没有值。。。 任何帮助都将不胜感激

提前还款


Tags: posgtid元素列表密钥ziparray
2条回答

您可以使用k.values()迭代这些值,或使用k.items()迭代(键、值)对

for value in k.values():
     print value

for key, value in k.items():
     print key, value

迭代您创建的字典(实际上是一个字典)的最快方法是而不是使用k[0].keys()k[0].values和{}创建键/值列表,但使用k[0].iteritems()创建一个字典迭代器,它只返回对,而不在内存中分配列表。在

对于大型词典(即a是字典),它的运行速度也快得多:

>>> non_iter_timer = timeit.Timer("for k,v in a.items(): k + v", setup="a = {x:x for x in xrange(10000000)}")
>>> non_iter_timer.repeat(3, 10)
[25.612606023166585, 25.100741935717622, 24.840450306339463]

>>> iter_timer = timeit.Timer("for k,v in a.iteritems(): k + v", setup="a = {x:x for x in xrange(10000000)}")
>>> iter_timer.repeat(3, 10)
[9.26259596885518, 9.198298194571748, 9.77466250122282]

相关问题 更多 >