GOOGLE ADS

miércoles, 20 de abril de 2022

Filtrar una lista del archivo txt bajo condiciones específicas

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

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...