dabear Skrevet 29. juni 2006 Del Skrevet 29. juni 2006 (endret) Hepp, har et litt merkelig problem. Jeg har et ord jeg får fra user input. Dette ordet kan være hva som helst, fks "ppppp" eller "hallo". Jeg kjører diverse manipulasjoner på ordet, og har valgt å dele det opp i ei liste. Jeg deretter random.shuffle på ordet, men ettersom dét ikke garanterer meg et annet ord enn jeg begynte med, må jeg kjøre det i en loop. Dersom jeg fks har ['p','p','p','p'] , vil jo denne lista alltid være det samme, uansett hvor mange ganger jeg shuffle()-er det. Hvordan kan jeg enklest finne ut om hvert element i ei liste er identiske? Endret 29. juni 2006 av dabear Lenke til kommentar
zeitgeist Skrevet 29. juni 2006 Del Skrevet 29. juni 2006 Hepp, har et litt merkelig problem. Jeg har et ord jeg får fra user input. Dette ordet kan være hva som helst, fks "ppppp" eller "hallo". Jeg kjører diverse manipulasjoner på ordet, og har valgt å dele det opp i ei liste. Jeg deretter random.shuffle på ordet, men ettersom dét ikke garanterer meg et annet ord enn jeg begynte med, må jeg kjøre det i en loop. Dersom jeg fks har ['p','p','p','p'] , vil jo denne lista alltid være det samme, uansett hvor mange ganger jeg shuffle()-er det. Hvordan kan jeg enklest finne ut om hvert element i ei liste er identiske? 6403804[/snapback] len(set(liste)) men skal du ta høyde for caps må du jobbe litt først ;-) Lenke til kommentar
dabear Skrevet 29. juni 2006 Forfatter Del Skrevet 29. juni 2006 (endret) Det blir ikke nødvendig, takk skal du ha. Jeg må sjekke at den opprinnelige lista har mer enn ett element først da? Ettersom len(set(['p'])) gir 1, jeg kan jo ikke sortere ei liste på ett element.. Etter det er gjort så kjører jeg altså dette? if len(set(l)) == 1: #ikke shuffle mer Endret 29. juni 2006 av dabear Lenke til kommentar
zeitgeist Skrevet 29. juni 2006 Del Skrevet 29. juni 2006 Det blir ikke nødvendig, takk skal du ha. Jeg må sjekke at den opprinnelige lista har mer enn ett element først da? Ettersom len(set(['p'])) gir 1, jeg kan jo ikke sortere ei liste på ett element.. Etter det er gjort så kjører jeg altså dette? if len(set(l)) == 1: #ikke shuffle mer 6406084[/snapback] Mulig jeg mistforsto litt. Ved å bruke set() fjerner du alle duplikater, så dersom len() == 1, er alle tegn like. Tror jeg hadde sjekket først om det i det hele tatt var noe å shuffle og hvis det var det, shufflet helt til orig_input != shuffled_input. I de fleste tilfeller vil det vel holde med en shuffling. 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å