在具有奇数项的迭代过程中,在同一行上打印dict的值和下一个值

2024-05-19 12:25:12 发布

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

(Python2.7)在前面的问题中,我试图遍历字典“rooms”的键,并且每行只显示两个键,如何一次显示奇数个房间?更具体地说,每条线两个,直到只剩下一个,并且只有那一个会自己走上一条线

Previous Question

当前代码:

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

Tags: key代码for字典keysroom房间question
2条回答

^{}接受第二个可选参数作为默认值,在迭代器耗尽时返回

keys = iter(sorted(rooms.keys()))
for key in keys:
    print key + "    " + next(keys, "")
rooms = {
"101": "Classroom",
"102": "Bathroom",
"103": "Room",
"104": "Room",
"105": "Room",
"106": "Room",
"107": "Room"}


keys = iter(sorted(rooms.keys()))
for key in keys:
    try:
        print(key + "    " + next(keys))
    except StopIteration:
        print(key)

不过,把keys列成一个列表,然后检查是否已经到了结尾,可能要简单得多

或者使用enumerate

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

相关问题 更多 >