Listen und deren Zuordnung zu anderen Listen?

2 Antworten

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

Woher ich das weiß:eigene Erfahrung
„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)

maowb84 
Beitragsersteller
 18.09.2022, 11:49

Danke dir :) Ich bekomm bei sowas immer nen Knoten. Ka wieso. Hatte die Lösung schonmal und dann vergess ich das immer wieder :P

1