打印时间表,物流问题

打印时间表,物流问题

问题描述:

我有一个字典。键是0到60之间的数字。这是几分钟。实施例一字典是这样的:打印时间表,物流问题

{u'31': 1, u'2': 0, u'30': 1} 

我想所有的密钥中的连字符,逗号分隔一切打印键(数字)的时间表。连字符数由字典中的每个键的数字表示。

最终结果应该是:

-,-,0,-,-,-,-,-,-,-,-,-,-,1,1,-,-,-,-,-,- 

(这上面只是为了说明,连字符的数量插图中是不正确的,但你得到的图片这意味着,在位置2(字典的键),有0(字典值),位置30有值1等等)。

我有这样的代码

for k, v in time_events.iteritems(): 
    print '-,'*int(k) + str(v)+',', 

但是这将导致

-,-,0,-,-,-,-,-,-,1,-,-,-,-,-,-,-1 

它打印作为单独的时间表(这样就会有3031之间30个连字符和应无每一个事件)

我的猜测是,首先为了通过密钥字典,然后从。减去的当期的关键前一个关键数字,这将使剩余的连字号还没有打印在中间的数字中。但是,如何在我的for循环中实际访问previous key

希望我的理解问题。

你可能只是这样做:

>>> 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)]。如果不存在,则返回第二个参数(默认值)。 Here是相关文档。

+0

美丽的解决方案,非常感谢! – nutship 2013-04-21 06:59:45