我有一个带有第0个元素的列表k:
k[0]: {'pattern': 0, 'pos': array([ 9.83698, 106.539 , 130.314 ]), 'id': 1922}
(它看起来像一个字典,但确实是一个列表) 当我遍历列表k的第0个元素并打印出我得到的每个元素时:
for i in k:
print i
=>输出:
pattern
pos
id
我不仅要访问键,还要访问值。这该怎么做? 我也尝试使用zip和izip将列表转换回dict,但是同样的resutlts ...即。只打印键,没有值... 任何帮助将不胜感激
事先提前答案 0 :(得分:0)
您可以使用k.values()来遍历值,或者使用k.items()来迭代(键,值)对
for value in k.values():
print value
for key, value in k.items():
print key, value
答案 1 :(得分:0)
迭代你创建的字典(实际上是字典)的最快方法是不,使用k[0].keys()
创建键/值列表,k[0].values
和k[0].items()
但使用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]