Python 打印时间表、物流问题
我有一个dict。键是0到60之间的数字。也就是分钟。示例dict如下所示: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的值,依
{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)]
。如果不存在,则返回第二个参数(默认值)。是相关的文件