Zahlen in einer Liste multiplizieren, ohne die Reihenfolge zu verlieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Jet
User
Beiträge: 2
Registriert: Freitag 7. Januar 2022, 07:19

v = [2, -3, 5]

sk = [i*4 for i in v if i > 0] + [i*1 for i in v if not i > 0]

print(sk)


Kann mir jemand sagen, wie die Reihenfolge hierbei aufrecht bleibt? :geek:
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

not i > 0 - da muss man erstmal drauf kommen 😰

Wenn du die Reihenfolge beibehalten willst, musst du die Bedingung in den Ausdruck vorne ziehen, mit einem ternären if.

[i * 4 if i > 0 else i for i …]
Jet
User
Beiträge: 2
Registriert: Freitag 7. Januar 2022, 07:19

__deets__ hat geschrieben: Freitag 7. Januar 2022, 09:19 not i > 0 - da muss man erstmal drauf kommen 😰

Wenn du die Reihenfolge beibehalten willst, musst du die Bedingung in den Ausdruck vorne ziehen, mit einem ternären if.

[i * 4 if i > 0 else i for i …]
hat echt geklappt, danke :o
Benutzeravatar
DeaD_EyE
User
Beiträge: 1244
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Viel besser wäre es noch, wenn Menschen die Namen auch verstehen würden.
Man darf auch Namen verwenden, die mehr als einen Buchstaben enthalten.

Ich weiß, Namen vergeben ist mit das schwierigste beim Programmieren.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten