dabear Skrevet 30. oktober 2005 Skrevet 30. oktober 2005 Viss jeg har en streng, fks streng= 'dette er en streng' hvordan kan jeg da fjerne alle doble, triple,.. whitespace fra den, slik at resultatet blir dette? streng= 'dette er en streng'
A_N_K Skrevet 30. oktober 2005 Skrevet 30. oktober 2005 En enkel (uoptimal) måte å gjøre det på: while " " in streng: streng = streng.replace(" ", " ")
dabear Skrevet 30. oktober 2005 Forfatter Skrevet 30. oktober 2005 (endret) Ser ikke ut til at jeg får korrekt resultat: streng = self.installedQuery while " " in streng: streng= streng(" ", " ") return streng dette gir meg det samme som jeg starta med: alacarte 0.8-0ubuntu1 edit: Takk, glemte bare en .replace Endret 30. oktober 2005 av dabear
dabear Skrevet 30. oktober 2005 Forfatter Skrevet 30. oktober 2005 Hm, da kom jeg på et nytt problem sjølsagt. Viss jeg har to versjoner, fks: v1 = '0.8-0ubuntu1' og v2='0.7-0ubuntu1', hvordan kan jeg sjekke hvilken av dem som er størst?
zeitgeist Skrevet 30. oktober 2005 Skrevet 30. oktober 2005 Hm, da kom jeg på et nytt problem sjølsagt. Viss jeg har to versjoner, fks:v1 = '0.8-0ubuntu1' og v2='0.7-0ubuntu1', hvordan kan jeg sjekke hvilken av dem som er størst? 5080320[/snapback] Hvis du vet at strengene alltid vil ha formatet x.y-0ubuntu1, så kan du f.eks gjøre noe slik: vstreng1 = '0.8-0ubuntu1' vstreng2 = '0.7-0ubuntu1' v1 = float(vstreng1.split('-')[0]) # splitter på '-' og bruker kun første element v2 = float(vstreng2.split('-')[0]) if v1 > v2: print "vstreng1 er nyeste versjon"
dabear Skrevet 30. oktober 2005 Forfatter Skrevet 30. oktober 2005 Hvis du vet at strengene alltid vil ha formatet x.y-0ubuntu1 Ja, det er nettopp dét; strengene vil ofte se veldig forskjellige ut. Her er et screenshot
zeitgeist Skrevet 30. oktober 2005 Skrevet 30. oktober 2005 Ja, det er nettopp dét; strengene vil ofte se veldig forskjellige ut. Her er et screenshot Blir litt pes å lage en generell algoritme for alt det der - og mer(?). Det er flere fremgangsmåter, alt avhenger av hvor stor feiltoleranse du tåler.
dabear Skrevet 31. oktober 2005 Forfatter Skrevet 31. oktober 2005 Jeg nøyde meg med commands.getoutput og dpkg --versions-compare Funker flotters
Klette Skrevet 31. oktober 2005 Skrevet 31. oktober 2005 (endret) en måte kunne jo være å fjerne alle bokstaver og tegn fra strengen og så sjekke det... man sjekker jo bare mot tidligere versjoner av samme programvare... litt python/pseudo-kode (klokka er 04:29 ) def returnVersionNum(minstreng): pos = 0 for i in range(33,48): for curBlock in minstreng: if curBlock == chr(i): minstreng[pos] == "" pos = pos + 1 pos = 0 for i in range(58,127): for curBlock in minstreng: if curBlock == chr(i): minstreng[pos] == "" pos = pos + 1 return float(minstreng) Noe slikt kanksje? Finnes sikkert en million måter å optimalisere den på, men som sagt.. klokka er 04:29 Lykke til =) Endret 31. oktober 2005 av Klette
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå