Python, ne adjon a listához semmit, ha a hosszúsága kisebb, mint 10?
return list([len(item) == 10 and item for item in lista])
Itt, hogyha az item hosszúsága 10 akkor a listához hozzáadja az itemet. Hogyha nem, akkor azt adja hozzá, hogy "False". Hogyan lehetne megoldani, hogy ne adjon hozzá semmit a False helyett? Hogyha azt mondom pl, hogy
return list([(item if len(item) == 10 else None) for item in lista])
akkor False helyett a "None"-t adja hozzá, ha meg azt írom, hogy else "", akkor meg egy 0 hosszúságú stringet. Nekem arra lenne szükségem, hogy ne adjon hozzá semmit, hogyha False, None, azaz negatív lenne a feltétel.
Ötletek?
Ahogy írtam
"Yup, ugyanúgy követeli az "else" részt a végére"
Egysoros ifeknél megköveteli az else-t, és mivel egy list-be toltjük be ezzel a generátorral, nemhogy a fent írt probléma nem szűnik meg, így mégúgyse működik. Sőt, a for szintaxisa sem jó, mert nem tehetsz oda ifet.
Ezen felül mi bajom vele? A világon semmi.
Kipróbáltad?
Mert működik és ez a megoldás a problémádra.
Ez nem "egysoros if", vagy minek nevezed, hanem list comprehensiün, aminek ez a szintaktikája, és igen, lehet ott if és még else se kell mellé. Tényleg próbáld ki.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!