Sto risolvendo cabala ma ho un piccolo problemino con il controllo del numero per vedere se questo ha 2 cifre uguali consecutive. Il codice che ho scritto in python per il controllo è questo:
def controllino(l):
new_list = []
for element in l:
if element not in new_list:
new_list += [element]
l = new_list
for element in l:
for i in range(len(element)-1):
if element[i] == element[i+1]:
l.remove(element)
print(element)
break
return l
Questa funzione nella prima parte (rimuovere eventuali duplicati) riesce, nella seconda parte (rimuovere numeri con cifre consecutive uguali) riesce solo in parte non rimuovendo tutte le occorenze. Grazie per chi cercherà di aiutare 
Ciao, potresti fornire un valore di esempio per la variabile l
? In questo modo è più semplice capire cosa non funziona nel codice da te fornito.
Ho risolto e alla fine il problema era questo ciclo:
Poiché rimuovevo elementi dalla lista sulla quale ciclavo, mandando in vacca tutto. Alla fine mi è bastato fare così per risolvere:
n = new_list
l = n.copy()
for element in l:
for i in range(len(element)-1):
if element[i] == element[i+1]:
n.remove(element)
break
Ciclando sulla lista “copia” ed eliminando dalla lista “n” che poi ritorna
Immaginavo fosse un problema del genere… Sono contento che tu sia riuscito a risolvere! Una piccola ottimizzazione potrebbe essere quella di usare un set
per eliminare elementi duplicati. Puoi trovare maggiori informazioni sui set qui.
Lascio in fondo al messaggio un’implementazione che fa uso dei set.
Buona fortuna nell’implementazione!
Implementazione della funzione usando i set
def controllino(
l: list[object] # L contiene elementi di qualsiasi tipo (interi, stringhe, ...)
) -> list[str]: # Viene restituita una lista di stringhe
n: set[str] = set(map(str, l)) # Convertiamo L in un set, rimuovendo i duplicati
result: list[str] = list(n) # Copiamo N in una lista
# La tua logica rimane invariata
for element in n:
for i in range(len(element) - 1):
if element[i] == element[i + 1]:
result.remove(element)
break
return result
Ovviamente potrebbe essere migliorata ulteriormente 
P.S. ho usato type hints in modo da chiarire meglio il perché di alcune azioni, volendo puoi tranquillamente ometterle:
def controllino(l):
n = set(map(str, l))
l = list(n)
for element in n:
for i in range(len(element) - 1):
if element[i] == element[i + 1]:
l.remove(element)
break
return l
1 Mi Piace