2024-04-24 00:42:16 发布
网友
有人知道我怎么从字典里找到两对吗 我正在尝试以更紧凑的格式呈现数据
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 23 - item 3 , 4 - item 4
1 - item 1 , 2 - item 2
3 - item 3 , 4 - item 4
编辑-请将其改为上面的样子
这就是你想要的:
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()将排序后的项转换为迭代器,然后在迭代器上循环以获得对。你知道吗
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
这就是你想要的:
或者更简单地说
您可以使用
iter()
将排序后的项转换为迭代器,然后在迭代器上循环以获得对。你知道吗另一种获得配对的方法是使用^{} 技巧:
相关问题 更多 >
编程相关推荐