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

2024-04-24 00:42:16 发布

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

有人知道我怎么从字典里找到两对吗 我正在尝试以更紧凑的格式呈现数据

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 - item 1 , 2 - item 2

3 - item 3 , 4 - item 4

编辑-请将其改为上面的样子


Tags: 数据in编辑for字典格式itemprint
2条回答

这就是你想要的:

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

您可以使用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

另一种获得配对的方法是使用^{}技巧:

>>> 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

相关问题 更多 >