Seite 1 von 1
Liste gibt bool statt int zurück
Verfasst: Freitag 30. September 2022, 07:17
von dahvid
Moin, ich möchte eine Liste mit n < 1000 zurückgeben, die durch 7 aber nicht durch 5 teilbar ist. Die Liste gibt aber nur True und False zurück anstatt Zahlen.
Code: Alles auswählen
teiler = [n % 7 == 0 and n % 5 != 0 for n in range(1000)]
print(teiler)
Re: Liste gibt bool statt int zurück
Verfasst: Freitag 30. September 2022, 07:34
von Dennis89
Hallo,
da fehlt die 'if'-Abfrage:
Code: Alles auswählen
teiler = [n for n in range(1000) if n % 7 == 0 and n % 5 != 0]
Du schreibst in deinem Fall nur die Rückgabe von der Bedingung in die Liste.
Grüße
Dennis
Re: Liste gibt bool statt int zurück
Verfasst: Freitag 30. September 2022, 07:42
von dahvid
Dennis89 hat geschrieben: Freitag 30. September 2022, 07:34
Hallo,
da fehlt die 'if'-Abfrage:
Code: Alles auswählen
teiler = [n for n in range(1000) if n % 7 == 0 and n % 5 != 0]
Du schreibst in deinem Fall nur die Rückgabe von der Bedingung in die Liste.
Grüße
Dennis
Super, vielen Dank! Sorry, bin noch Anfänger deswegen.
Grüße
Re: Liste gibt bool statt int zurück
Verfasst: Freitag 30. September 2022, 10:43
von __blackjack__
Statt alle Zahlen zu testen, könnte man das etwas abkürzen, sowohl in der Länge des Codes, als auch was die Laufzeit angeht, wenn man nur die vielfachen von 7 auf Teilbarkeit durch 5 testet:
Code: Alles auswählen
In [365]: teiler = [n for n in range(1000) if n % 7 == 0 and n % 5 != 0]
In [366]: teiler == [n for n in range(0, 1000, 7) if n % 5 != 0]
Out[366]: True