如何从字典中检索多个项目对

时间:2014-04-23 07:40:45

标签: python for-loop dictionary

有谁知道我如何从字典中检索两对 我试图以更紧凑的格式呈现数据

a = {1:'item 1', 2:'item 2', 3:'item 3', 4:'item 4' }
for i,j,k,l in a:
    print i, ' - ' ,j , ' , ' ,k, ' - ' ,l
  

1 - 第1,2项 - 第2项

     

3 - 第3,4项 - 第4项

编辑 - 抱歉看起来像上面那样

2 个答案:

答案 0 :(得分:3)

您可以使用iter()将已排序的项目转换为迭代器,然后遍历该迭代器以获取对。

>>> from itertools import chain
>>> items =  iter(sorted(a.items())) #As dicts are unordered
>>> print ' '.join('{} - {} , {} - {}'.format(*chain(x, next(items))) for x in items)
1 - item 1 , 2 - item 2 3 - item 3 , 4 - item 4

获得对的另一种方法是使用zip(*[iter(seq)]*n)技巧:

>>> items = sorted(a.items())
>>> grouped = zip(*[iter(items)]*2)
>>> print ' '.join('{} - {} , {} - {}'.format(*chain(*x)) for x in grouped)
1 - item 1 , 2 - item 2 3 - item 3 , 4 - item 4

答案 1 :(得分:0)

这就是你想要的:

a = {1:'item 1', 2:'item 2', 3:'item 3', 4:'item 4' }

for i,j in a.items():
    print i, ' - ' ,j, ',',

[OUTPUT]
1 - item 1 , 2 - item 2 , 3 - item 3 , 4 - item 4 ,

甚至更简单

l = [' - '.join(map(str, i)) for i in a.items()]

>>> print l
1 - item 1, 2 - item 2, 3 - item 3, 4 - item 4