Python 打印时间表、物流问题

Python 打印时间表、物流问题,python,printing,python-2.7,Python,Printing,Python 2.7,我有一个dict。键是0到60之间的数字。也就是分钟。示例dict如下所示: {u'31': 1, u'2': 0, u'30': 1} 我想打印的关键(数字)作为一个时间表与连字号之间的所有关键,一切逗号分隔。连字符的数量由dict中每个键的数量表示 最终结果应为: -,-,0,-,-,-,-,-,-,-,-,-,-,1,1,-,-,-,-,-,- (以上只是为了举例说明,中间的连字符数不正确,但您得到了图片。这意味着在位置2(dict的键),有0(dict的值),在位置30有1的值,依

我有一个dict。键是0到60之间的数字。也就是分钟。示例dict如下所示:

{u'31': 1, u'2': 0, u'30': 1} 
我想打印的关键(数字)作为一个时间表与连字号之间的所有关键,一切逗号分隔。连字符的数量由dict中每个键的数量表示

最终结果应为:

-,-,0,-,-,-,-,-,-,-,-,-,-,1,1,-,-,-,-,-,-
(以上只是为了举例说明,中间的连字符数不正确,但您得到了图片。这意味着在位置
2
(dict的键),有
0
(dict的值),在位置
30
1
的值,依此类推)

我有这个密码

for k, v in time_events.iteritems():
    print '-,'*int(k) + str(v)+',', 
但这将导致

-,-,0,-,-,-,-,-,-,1,-,-,-,-,-,-,-1
它将每个事件打印为单独的时间线(因此在
30
31
之间将有30个连字符,并且应该为无)

我的猜测是,首先按键对dict排序,然后从currect键中减去前一个键号,这将得到剩余的连字符数,以打印中间的数字。但是如何在我的
for
循环中实际访问
上一个键


希望我的问题可以理解

您可以这样做:

>>> dct={u'31': 1, u'2': 0, u'30': 1}
>>> ','.join(str(dct.get(str(i), '-')) for i in range(60))
'-,-,0,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,1,1,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'
dct.get(str(i),“-”)
基本上尝试访问
dct[str(i)]
。如果不存在,则返回第二个参数(默认值)。是相关的文件