2016-07-22 17 views
0

Ich habe alle möglichen for-Schleifen ausprobiert, aber ich kann einfach nicht herausfinden, wie man "n" Zeilen aus einem Wörterbuch nach dem anderen ausdruckt. Ich bin neu in die Programmierung so verzeihen Sie bitte meine Terminologie und Ausdrücke ...Python, wie man x Zeilen gleichzeitig in einer for-Schleife druckt

Beispiel Quelle:

{'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'}]} 

Dies druckt alles auf einmal (unerwünschte):

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'} 

I haben eine Menge Code entkernt, um das Lesen leichter zu machen. Das Verhalten, das ich möchte, ist, entsprechend der Anzahl der angegebenen Zeilen zu drucken. Für jetzt verwende ich einfach lines_to_execute = 2. Ich möchte Code so nah wie möglich halten, um das Umschreiben dieses Blocks zu minimieren. Von dieser Antwort einmal arbeite ich Code ändern, so dass es etwas Brocken gleichzeitig ausführt.

-Code-Block I zu schließen bleiben wollen: Ill Mischung psudo Code auch hier

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) 

Für dieses Beispiel, wenn ich zu einer Zeit, zwei Linien oder Zeilen ausdrucken möchten, ausgegeben würde Sieh aus wie unten. Bestellen Sie ist nicht wichtig, da gleiche 2 nicht mehr als einmal ausgeführt werden sollen:

gewünschte Ausgabe:

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

Eine Sekunde Verzögerung ...

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

Eine Sekunde verzögern.

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

Ich hoffe, das genug Informationen erhalten Sie auf zu gehen.

Antwort

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) 

Halten Sie es so einfach wie möglich.

+0

genau was ich brauchte. Danke! – New2Python