dabear Skrevet 30. oktober 2005 Del 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' Lenke til kommentar
A_N_K Skrevet 30. oktober 2005 Del Skrevet 30. oktober 2005 En enkel (uoptimal) måte å gjøre det på: while " " in streng: streng = streng.replace(" ", " ") Lenke til kommentar
dabear Skrevet 30. oktober 2005 Forfatter Del 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 Lenke til kommentar
dabear Skrevet 30. oktober 2005 Forfatter Del 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? Lenke til kommentar
zeitgeist Skrevet 30. oktober 2005 Del 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" Lenke til kommentar
dabear Skrevet 30. oktober 2005 Forfatter Del 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 Lenke til kommentar
zeitgeist Skrevet 30. oktober 2005 Del 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. Lenke til kommentar
dabear Skrevet 31. oktober 2005 Forfatter Del Skrevet 31. oktober 2005 Jeg nøyde meg med commands.getoutput og dpkg --versions-compare Funker flotters Lenke til kommentar
Klette Skrevet 31. oktober 2005 Del 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 Lenke til kommentar
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å