Necesito filtrar un archivo txt en palabras específicas. Las palabras que terminan con 'd', que tienen menos de 10 letras y las palabras que tienen letras duplicadas deben filtrarse del archivo txt. Luego, deben devolverse como una lista de palabras y el número de palabras como un par. Hasta ahora tengo esto
exclude = 'd'
f = open('nameofthefile.txt', 'r')
Solución del problema
Esto es lo que hice.
No estoy seguro de haber entendido todo lo que dijiste, pero esto es lo que hice:
nameofthefile.txt
:
abcd
abcdefghijk
0123456789d
aabbccdd
main.py:
def filtering(filename: str):
f = open(filename,'r').read().split("\n")
lst = []
for e in f: # For elements in file
if e[-1] == "d" and len(e) < 10 and sorted([*set(e)]) == sorted(e):
lst += [e]
return lst
print(filtering('nameofthefile.txt')) # ["abcd"]
Puedes refractarlo como:
def filtering(filename: str):
f = open(filename,'r').read().split("\n")
return [e for e in f if e[-1] == "d" and len(e) < 10 and sorted([*set(e)]) == sorted(e)]
print(filtering('nameofthefile.txt')) # ["abcd"]
Si la última letra es d:
e[-1] == 'd'
Si la palabra tiene menos de 10 letras:
len(e) < 10
Si la palabra no tiene letras duplicadas
sorted([*set(e)]) == sorted(e)
No hay comentarios.:
Publicar un comentario