2016-07-22 112 views
0

我嘗試了各種for循環,但似乎無法弄清楚如何一次打印字典中的「n」行數。我是新來編程,所以請原諒我的術語和表達...Python如何在for循環中一次批量打印x行

示例源:

{'majorkey1': [{'name':'j','age':'3','height':'6feet'}, 
{'name':'r','age':'4','height':'5feet'}, 
{'name':'o','age':'5','height':'3feet'}], 
'majorkey2':[{'name':'n','age':'6','height':'4feet'}, 
{'name':'s','age':'7','height':'7feet'}, 
{'name':'q','age':'7','height':'8feet'}]} 

這一次(不需要)打印的一切:

for majorkey in readerObj.keys(): 
    for idx, line in enumerate(readerObj.get(majorkey)): 
     print line 

{'name':'j','age':'3','height':'6feet'} 
{'name':'r','age':'4','height':'5feet'} 
{'name':'o','age':'5','height':'3feet'} 
{'name':'n','age':'6','height':'4feet'} 
{'name':'s','age':'7','height':'7feet'} 
{'name':'q','age':'7','height':'8feet'} 

我已經燒燬了很多代碼以使其更易於閱讀。我想要的行爲是根據指定的行數進行打印。現在我只用lines_to_execute = 2。我想保持代碼儘可能接近,以儘量減少我重寫此塊。從這個答案一旦工作,我將修改代碼,以便它一次執行大塊

代碼塊我想留接近:在這裏也

for majorkey in readerObj.keys(): 
    lines_to_execute = 2 
    start_idx_position = 0 
    range_to_execute = lines_to_execute 
    for idx[start_idx_position:range_to_execute], line in enumerate(readerObj.get(majorkey)): 
     print line 
     increment start_idx_position by lines_to_execute 
     increment range_to_execute by lines_to_execute 
     time.sleep(1) 

生病混合psudo代碼在這個例子中,如果我想打印在同一時間兩行或行,輸出將看起來像下面。

所需的輸出:

{'name':'j','age':'3','height':'6feet'} 
{'name':'r','age':'4','height':'5feet'} 

一秒的延遲...

{'name':'o','age':'5','height':'3feet'} 
{'name':'n','age':'6','height':'4feet'} 

一秒爲同2無法得到執行一次以上順序並不重要延遲。

{'name':'s','age':'7','height':'7feet'} 
{'name':'q','age':'7','height':'8feet'} 

我希望這是足夠的信息去。

回答

0
from pprint import pprint 
import time 

for key in obj.keys(): 
    lines_to_execute = 2 
    pprint(obj[key][:lines_to_execute]) # that's all you need 
    time.sleep(1) 

保持儘可能簡單。

+0

正是我所需要的。謝謝! – New2Python