2013-06-05 23 views

cevap

8
import itertools 

# ... 

for each_f, each_g in itertools.izip(f, g): 
    # ... 
+0

'İçe aktarma itertools' gerekli olabilir. – shahkalpesh

+0

@shahkalpesh açıktır. – kirelagin

+1

OP için açık olmayabilir, bu nedenle yorum. – shahkalpesh

-1

Bir bağlam yöneticisini kullanabilirsiniz (Okuyorum iki dosya çok büyük) aynı anda iki dosyalarını okumak için ifadeye yani: itertools kullanmadan

with open('file1', 'r') as a, open('file2', 'r') as b: 
    do_something_with_a_and_b 
+0

Sanırım bunun böyle düşürülmemesi gerekiyor; Bu, asıl sorunla örtüşmeyen soru başlığı için basit bir cevaptır. 'Döngüye açmak için çok fazla değer' gibi bir şeye sabitlenmesi gereken başlık ' – progmatico

1

:

while True: 
    try: 
     f_line = next(f) 
     g_line = next(f) 
    except StopIteration: 
     break 

Bu, izip'un da yaptığı gibi, iki dosyanın daha kısa olanı biter bitmez bu döngüden çıkar.

Ama gerçekten, itertools üstün bir çözümdür.

İlgili konular