Python 使用奇数项在迭代期间在同一行上打印dict的值和下一个值
(Python2.7)在我的上一个问题中,我试图迭代字典“rooms”的键,并且每行只显示两个键,如何一次显示奇数个房间?更具体地说,每行两个,直到只剩下一个,并且只有那个一个将自己走在一条线上 当前代码:Python 使用奇数项在迭代期间在同一行上打印dict的值和下一个值,python,python-2.7,dictionary,iteration,Python,Python 2.7,Dictionary,Iteration,(Python2.7)在我的上一个问题中,我试图迭代字典“rooms”的键,并且每行只显示两个键,如何一次显示奇数个房间?更具体地说,每行两个,直到只剩下一个,并且只有那个一个将自己走在一条线上 当前代码: rooms = { "101": "Classroom", "102": "Bathroom", "103": "Room", "104": "Room", "105": "Room", "106": "Room"} keys = iter(sorted(rooms.keys()))
rooms = {
"101": "Classroom",
"102": "Bathroom",
"103": "Room",
"104": "Room",
"105": "Room",
"106": "Room"}
keys = iter(sorted(rooms.keys()))
for key in keys:
print key + " " + next(keys)
电流输出:
101 102
103 104
105 106
目标产出:
101 102
103 104
105 106
107
尽管制作
键
列表并检查是否已结束可能要简单得多。或者使用枚举
from __future__ import print_function
per_line = 2
keys = iter(sorted(rooms.keys()))
for i, key in enumerate(keys):
if (i + 1) % per_line == 0 or (i + 1) == len(rooms.keys()):
print(key)
else:
print(key, end="\t")
使用可选的第二个参数作为迭代器耗尽时返回的默认值
keys = iter(sorted(rooms.keys()))
for key in keys:
print key + " " + next(keys, "")
如果你有偶数个键(就像你在示例字典中做的那样),那怎么可能呢
keys = iter(sorted(rooms.keys()))
for key in keys:
print key + " " + next(keys, "")