Kezdőoldal » Számítástechnika » Programozás » Python 0,1 átírása true,...

Python 0,1 átírása true, false-ra?

Figyelt kérdés
Ha van egy adathalmazom, amelyben 0-val és 1-el van jelölve az igaz, hamis, azt hogy tudom átírni python segítségével true-ra és false-ra?

2013. máj. 4. 18:28
1 2
 1/15 anonim ***** válasza:

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.

2013. máj. 4. 18:33
Hasznos számodra ez a válasz?
 2/15 A kérdező kommentje:
Nem pythonban akarom a true-false-t használni, hanem egy data fájlt kell átalakítanom pythonnal arff-re, hogy wekában dolgozni tudja vele.
2013. máj. 4. 18:42
 3/15 iostream ***** válasza:

"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.

2013. máj. 4. 21:07
Hasznos számodra ez a válasz?
 4/15 anonim ***** válasza:

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)]

2013. máj. 4. 22:04
Hasznos számodra ez a válasz?
 5/15 iostream ***** válasza:
100%

Vagy:

''.join(map(lambda x: str(bool(int(x))), '10010101101110'))

Esetleg

''.join([str(bool(int(ch))) for ch in '10111010101'])

2013. máj. 4. 22:59
Hasznos számodra ez a válasz?
 6/15 anonim ***** válasza:
100%

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'])

2013. máj. 4. 23:25
Hasznos számodra ez a válasz?
 7/15 anonim ***** válasza:
Sokat segítene, ha megadnád az adathalmaz formátumát, anélkül felesleges időtöltés válaszokat kidolgozni.
2013. máj. 5. 06:30
Hasznos számodra ez a válasz?
 8/15 anonim ***** válasza:

#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.

2013. máj. 5. 06:46
Hasznos számodra ez a válasz?
 9/15 iostream ***** válasza:
100%
#8 Ha csak egyszer hozza létre a dictet, akkor valószínűleg azért, mert dictben a lookup az 1 hash + 1 ugrás, az str(bool(int(ch))) pedig három hívás, amik közül az int és az str költséges lehet.
2013. máj. 5. 09:44
Hasznos számodra ez a válasz?
 10/15 anonim ***** válasza:

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ő?

2013. máj. 5. 10:04
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!