2017-10-05 1 views
-1

Ich habe zwei Listen, und die eine basiert auf der anderen. Ich möchte 50 Artikel/Zeile aus jeder Liste drucken, abwechselnd zwischen Listen. Ich bin in der Lage, es mit einer Liste zu bekommen, aber die zweite Liste einzuführen, und abwechselnd hin und her kann ich nicht herausfinden. Ich bin haben dies bisher:Ich muss zwei Listen drucken, 50 Zeichen gleichzeitig, abwechselnd zwischen Listen

while idx < len(_back_check): 
    print (_back_check[idx], end="") 
    if ((idx > 0) and (idx % 50 == 0)): 
     print() break; 
    idx +=1 

Als Beispiel, wenn ich 2 Listen haben, l1=[.......] und l2=[........], ich brauche einen Ausgang:

l1[0]-l1[49] 
l2[0]-l2[49] 
l1[50]-l1[99] 
l2[50]-l2[99] 
l1[100]-l1[149]...... 

Ich hoffe, das macht es klarer.

+1

Bitte posten der Code, den Sie gerade haben. – akshaynagpal

+2

Wenn Sie neu sind, lesen Sie https://stackoverflow.com/help/how-to-ask und verfeinern Sie Ihre Frage. – akshaynagpal

+0

while idx 0) und (idx% 50 == 0)): print() break; idx + = 1 ' –

Antwort

-1
list1 = ['a', 'b', 'c', 'd',....] 
list2 = ['1', '2', '3', '4', ...] 
count = 0 
d1 = [] 
d2 = [] 
for l1, l2 in zip(list1, list2): 
    d1.append(l1) 
    d2.append(l2) 
    count += 1 
    if not count % 50: 
     print(",".join(d1)) 
     print(",".join(d2)) 
     d1 = [] 
     d2 = [] 

Output: 
a,b,c,d,e,f, .... 50th 
1,2,3,4,5,6 ..... 50th 

Again it will show next 50 items 

Totals rows: 120x2 
+0

das ist es nicht ganz. Ich habe 'zip()' schon versucht, aber es tut Spalten mit den Listen, nicht Zeilen. Auch meine Listen sind jeweils 6000 Stück lang, also brauche ich ~ 120 x 2 Zeilen gedruckt. –

+0

Überprüfen Sie meinen Bearbeitungscode. Es wird 120x2 Zeilen –

+0

das fast dort drucken, aber wenn es an 'd1' und' d2' anfügt, wird die Liste länger, und dann druckt es die gesamte Liste die nächste Runde. –

0

Angenommen, Sie haben zwei Listen first_list und second_list mit gleicher Größe:

for i in range(0, len(first_list), 50): 
    print(*first_list[i:i+50]) 
    print(*second_list[i:i+50]) 
+0

Vielen Dank! kannst du mir sagen, wie man die Leerzeichen zwischen den Buchstaben entfernt? Ich weiß, dass das '*' die Kommas und Apostrophe verwendet, aber da ist immer noch Platz. –

+0

@AliMojabi können Sie 'print (* first_list [i: i + 50], sep =" ") verwenden' –

+1

Genial, es dauerte eine Sekunde, um zu erfahren, warum Sie den 'Bereich (0, len (first_list) 50): ', aber ich sehe jetzt, wie es mit dem Bereich übereinstimmt, den Sie in den Listen setzen. Vielen Dank! –

0

Eine längere Lösung als @AlirezaMika aber eine beliebige Anzahl von parallelen Listen dynamisch verarbeiten kann:

l1 = 'A' * 1035 
l2 = 'B' * len(l1) 
l3 = 'C' * len(l1) 

my_lists = [l1, l2, l3] 

SEGMENT = 50 

for index in range(0, len(my_lists[0]), SEGMENT): 
    for offset in range(len(my_lists)): 
     my_list = my_lists[offset] 
     print(*my_list[index:index + SEGMENT], sep="") 
Verwandte Themen