Listen und deren Zuordnung zu anderen Listen?
Hey ich habe zwei Listen. Ich möchte mir den korrespondierenden Inhalt der Liste A zu B ausgeben lassen, in dem folgenden Beispiel also die Ausgabe "B" und "C".
Die Lösung ist vermutlich ganz einfach; so geht es jedenfalls nicht:
A=[0,1,1,0]
B=["A","B","C","D"]
for i in A:
if A[i]==1:
print(B[i])
Ich erhalte zweimal B als Ausgabe. Zweimal verstehe ich gerade nicht, aber das er bei B stoppt schon eher; denn es ist ja das 2. Element; also i=1.
Ich möchte aber das er in B immer den String ausgibt, sobald an der Position in A die 1 kommt.
2 Antworten
![](https://images.gutefrage.net/media/user/Hanibal545/1656531652297_nmmslarge__0_0_1080_1079_eb4d44530689a94c77c17752e5e1a1cb.jpg?v=1656531652000)
Ich würde das Problem mit enumerate lösen. Enumerate erstellt eine weitere Variable und zählt mit jedem Schleifendurchlauf hoch.
A=[0,1,1,0]
B=["A","B","C","D"]
for i,item in enumerate(A):
if item == 1:
print(B[i])
Bei deinem Code ist das Problem, dass bei der Liste nur 1 und 0 sind und die dann nur auf die Stelle 1 und 0 verweisen.
Ich hoffe ich konnte dir weiterhelfen
LG
![](https://images.gutefrage.net/media/user/mihisu/1507493208281_nmmslarge__27_27_495_495_365edc29f3a8f4bb31cf67220050d253.png?v=1507493210000)
„Ich erhalte zweimal B als Ausgabe. Zweimal verstehe ich gerade nicht, aber das er bei B stoppt schon eher; denn es ist ja das 2. Element; also i=1.“
Du solltest bedenken, dass bei deiner for-Schleife (mit „for i in A“) das i nicht den aktuellen Index in der Liste A angibt, sondern einen Wert, der in der Liste A enthalten ist. Du gehst hier nicht i = 0, i = 1, i = 2, i = 3 durch. Sondern du gehst i = 0, i = 1, i = 1, i = 0 durch.
Was du möchtest, ist wohl eher „for i in range(len(A))“ statt „for i in A“. Also so beispielsweise...
A=[0,1,1,0]
B=["A","B","C","D"]
for i in range(len(A)):
if A[i]==1:
print(B[i])
============
Ich persönlich würde das jedoch eher so lösen...
A = [0, 1, 1, 0]
B = ["A", "B", "C", "D"]
for a, b in zip(A, B):
if a == 1:
print(b)
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Danke dir :) Ich bekomm bei sowas immer nen Knoten. Ka wieso. Hatte die Lösung schonmal und dann vergess ich das immer wieder :P
![](https://images.gutefrage.net/media/default/user/5_nmmslarge.png?v=1438863662000)