Jump to content
soraiaduarte

resolução de um exercício

Recommended Posts

soraiaduarte

Olá Malta!

Bem, eu sou novata aqui no fórum, mas espero que me possam ajudar. Estive a tentar resolver estes exercícios e não consegui. Deixo-vos aqui os enunciados:

1) Implemente a função words(filename) que toma como argumento o nome de um ficheiro de texto e devolve um dicionário tal que: as chaves são as palavras existentes no ficheiro, e os valores são o número de vezes que aparecem. Antes de adicionar palavras sao dicionário, letras maiúsculas devem ser convertidas em minúsculas. (Nota: caso isso facilite, pode assumir que o texto contém apenas palavras em inglês.)

2)Escreva uma função dist(x) que retorna uma lista contendo todos os valores inteiros distintos presentes na lista imbricada de inteiros x. O resultado deverá estar ordenado, por ordem crescente. (Nota: pode utilizar o método sort() para ordenar a lista.)

Obrigada

Share this post


Link to post
Share on other sites
soraiaduarte

Boas,

Aqui está o tentei para a 1)

def words(filename):
texto = open(filename,"r")
dic={}
for linha in texto:
        values = linha.split()
	for v in values:
		conta= values.count(v)
		dic['v']='conta'
return dic
texto.close()
print (words("sdkf.txt"))

e aqui o que pensei para o 2)

def dist(x):
    if x == []:
        return []
    else:
        primeiroItem = x[0]
        if type(primeiroItem) == type(1):
		a= [primeiroItem + dist(x[1:])]
		a=a.sort()
            return a
print(dist([]))
print(dist([1,a,3,4]))
print(dist([1,5,[a,5,6],a,8]))

Cumprimentos

Share this post


Link to post
Share on other sites
hmiguel

a)

def words(filename):
       ficheiro = open(filename,"r")

lista_de_linhas = ficheiro.readlines()

ficheiro.close()

       dic={}

       for linha in lista_de_linhas:

	lista_de_palavras = linha.split()

               for palavra in lista_de_palavras:
		palavra = palavra.lower() # minusculas
                       conta = lista_de_palavras.count(palavra)
                       dic[palavra]= conta

       return dic


print (words("texto.txt"))

b)

Não é a maneira mais correcta de fazer isto, mas tentei aproveitar o teu código.

def dist(x):

if type(x) == int: return [x]

if x == []: return []

a = x.pop(0)

l = (dist(a) + dist(x))

return sorted(list(set(l)))


print dist([1,5,[1,5,6],2,8])


"Homem que é Homem não usa Java!"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.