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?