Python 0,1 átírása true, false-ra?
Kezdetnek megadsz egy üres listát. Végigiterálsz a bejövő listán. Ha 1 az érték, akkor a betett érték "true", ha 0, akkor "false". De írhatod úgy, hogy ha elem: ...
különben: ... A Python számára nincs true vagy false érték; minden értéknek van igazságértéke. A 0 hamis, más számérték igaz.
"A Python számára nincs true vagy false érték; minden értéknek van igazságértéke. A 0 hamis, más számérték igaz."
Van egy bool típusa, aminek két statikus eleme, a True és a False. Az if, while logikai értéket vár, amit elő tud állítani számokból meg minden másból, ahogy mondtad a második részben.
A 0, 1-nek közvetlenül van logikai értéke, értelem szerűen a 0 a False, a 1 a True.
Ha olyan string-é akarod átalakítani, amiben a "False" vagy "True" szerepel, akkor egyszerűen iterálj végig az adatodon:
for c in data:
if c == '0':
print "False"
else:
print "True"
Rövidebben:
for c in data:
print ("False", "True")[int(c)]
Vagy:
''.join(map(lambda x: str(bool(int(x))), '10010101101110'))
Esetleg
''.join([str(bool(int(ch))) for ch in '10111010101'])
A .join() elfogad generator expressiont is, felesleges a list comprehension, bár meglepő, de lassabb generátorral. Ha már sebesség, akkor ajánlom ezt:
''.join([{'0':'False', '1':'True'}[ch] for ch in '10111010101'])
#6
Valószínűleg nem sokat számít a sebesség, de azért érdekel a magyarázatod, hogy ez miért gyorsabb.
Köszönöm a választ. Sosem értettem, hogy lehetsz te 52%-os, mikor csupa okosat olvasok tőled.
Hol lehet utánanézni, hogy mi mennyire költséges a Pythonban? Vagy nekem kell kikísérleteznem?
És ez általában is igaz más programnyelvekre, hogy a hash table gyorsabb, mint a függvények? A költségsorrend mennyire nyelvfüggő?
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!