2017-01-17 6 views
-3

Ich bin neu. Ich möchte einige Arrays aus zwei Arrays erstellen. Eingabe-Arrays die gleiche Anzahl von Zeilen und Spalten:Erstellen Sie ein paar Arrays aus zwei Arrays?

a = [1, 2, 3] 
b = [4, 5, 6] 

möchte ich bekommen:

test1 = [1, 4] 
test2 = [2, 5] 
test3 = [3, 6] 

Ich habe versucht, einen Code zu schreiben, wie unten:

test = [] 
a = [1, 2, 3] 
b = [4, 5, 6] 
for i in range(len(a)): 
    test[i] = [a[i], b[i]] 

Aber es doesn arbeite nicht. Wie kann ich die gewünschte Ausgabe erhalten? Ich sehe, dass Sie mich nicht verstehen. Ich versuche zu korrigieren: - In Wirklichkeit habe ich viel variabler als drei, warum ich nicht schreiben kann:

test1, test2, test3 = zip(a,b) 

- Ich brauche das wirklich in Format:

test1=[1,4] 
    . 
    . 
    . 
testi=[ , ] 
  • Ich brauche separate Arrays, weil ich dies für das Diagramm verwenden möchte.
  • Einige von Ihnen denken, dass ich separate Arrays nicht brauchen, ok, aber wie kann ich erstellen Chart mit 67 Kurven ?:

Diagramm ist XY-Achse, zum Beispiel: Daten X = [1,10 ], Daten für Y: Y1 = test1 = [1,4] . . Y67 = test67 = [70,90] also wie bekomme ich Daten für Y-Achse für 67 Kurven, wenn ich Liste der Listen habe?

+5

Verwenden Sie die Funktion 'zip()' – MYGz

+1

Mögliches Duplikat von [Wie kann ich zwei Listen in Python parallel durchlaufen?] (Http: // stackoverflow.com/questions/1663807/how-can-ich-iterate-through-two-lists-in-parallel-in-python) – MYGz

+0

(test1, test2, test3) = zip (a, b) – dpa

Antwort

0

Sie können die Methode bult-in zip() verwenden.

list_a = [1, 2, 3, 4] 
list_b = [5, 6, 7, 8] 

zip(list_a, list_b) 

Ausgang:

[(1, 5), (2, 6), (3, 7), (4, 8)] 

Wenn Sie Listen wollen, anstelle von Tupeln, können Sie eine Liste Verständnis wie diese verwenden:

lists = [list(i) for i in zip(list_a, list_b)] 

Ausgang:

[[1, 5], [2, 6], [3, 7], [4, 8]] 
0

Sie könnten Append verwenden, um neue Elemente hinzuzufügen t auf Ihrer Liste, wenn Sie Ihren Weg gehen:

test=[] 
a = [1,2,3] 
b = [4,5,6] 
for i in range(len(a)): 
    test.append([a[i], b[i]]) 

print test 
>>> [[1,4], [2,5],[3,6]] 

oder Sie könnten zip() verwenden:

print zip(a, b) 
>>> [(1,4), (2,5), (3,6)] 
+0

Ich möchte nicht, dass die Ausgabe so aussieht: '[(1,4), (2,5), (3,6)]'. Ich möchte drei verschiedene Arrays bekommen – Monika

+1

Sie drei verschiedene Array sind: 'test [0]', 'test [1]' und 'test [2]' – iFlo

+0

Aber das ist nur ein Beispiel. In Wirklichkeit habe ich viel mehr Variable als Test1, Test2 und Test 3. Deshalb, warum ich für die Schleife verwendet – Monika

0

Da Sie die Ausgänge als drei explizite Arrays haben wollten, können Sie diese verwenden :

a = [1, 2, 3] 
b = [4, 5, 6] 
test1, test2, test3 = zip(a, b) 
0

im Fall, wenn Sie in Funktion verwenden

vars = zip(a, b) 
chart_function(*vars) # if chart_function accepts variables like v1, v2, ... 
separate Variablen müssen
Verwandte Themen