Copiare
Osserva
- Per copiare si concatenano i singoli caratteri a destra
- Per copiare al contrario si concatenano i caratteri a sinistra
Con start | Con start e stop | |
def copia(s): ss="" for c in s: ss=ss+c return ss |
def copia(s, start): ss="" for i in range(start, len(n)): ss=ss+s[i] return ss |
def copia(s, start, stop): ss="" for i in range(start, stop): ss=ss+s[i] return ss |
def capovolta(s): ss="" for c in s: ss=c+ss return ss |
def capovolta(s, start): ... |
def capovolta(s, start, stop): ... |
start e stop devono puntare effettivamente ai caratteri della stringa
Aggiungendo prima del for le istruzioni
- start=min(0, start)
- stop=max(stop, len(s))
si filtrano eventuali valori troppo bassi o troppo alti.
Mescolare
Crea una lista di indici per la stringa, mescola la lista degli indici, copia la stringa utilizzando gli indici mescolati
import random def mescolata(s): indici=list(range(len(s))) random.shuffle(indici) ss="" for i in indici: ss+=s[i] return ss
Passa i caratteri a una lista, mescola il contenuto della lista, copia la lista in una stringa
lista=list(s) random.shuffle(lista) ss="" for c in lista: ss+=c
Passa i caratteri a una lista, mescola il contenuto della lista, trasforma la lista in stringa
lista=list(s) random.shuffle(lista) s=str().join(lista)
Ordinare
Passa i caratteri a una lista, ordina la lista di caratteri con sort(), trasforma la lista in stringa
s1="pyTHon" lista=list(s1) # ['p','y','T','H','o','n'] lista.sort() # ['H','T','n','o','p','y'] s2=str().join(lista) # 'HTnopy'
La funzione sorted()
- viene applicata ai codici numerici (ASCII, Unicode)
- restituisce una lista
lista=sorted(s1) # ['H','T','n','o','p','y'] s2=str().join(lista) # 'HTnopy'
Ordinare con un criterio
- str.lower, considera ogni lettera come minuscola
- str.strip, non considera gli spazi iniziali e finali
- str.upper, considera ogni lettera come maiuscola
- …
lista=sorted(s1, key=str.lower) # ['H','n','o','p','T','y'] s2=str().join(lista) # 'HnopTy'
Continua: Anagrammi?