a13293 Posted January 8, 2007 at 06:18 PM Report #75204 Posted January 8, 2007 at 06:18 PM boas!! ca estou eu com mais uma duvida... é o seguinte quero fazer uma funcao que rebe listas e compara cada elemento da lista e conta quanta vezes cada elemento aparece nas outras listas!!! por exemplo list1=[ola , mundo,python] list2=[eu, ola,dany] list3=[dany,python,ola] depois ter a saida: ola 3 mundo 1 python 2 eu 1 dany 2 eu ja tentei com o "in" mas nao estou a conseguir!!!! obrigado....
Triton Posted January 8, 2007 at 11:18 PM Report #75282 Posted January 8, 2007 at 11:18 PM Não tenho neste momento o interpretador instalado, mas podes tentar da seguinte maneira: primeiro crias uma lista que vai conter os elementos únicos das listas que queres incluir na pesquisa. Depois utilizado um ciclo for iteras por todos os elementos da lista que contem os elementos únicos, verificas se o elemento está em cada lista original com o in. Caso estejas podes incrementar por exemplo uma variável temporária para saber quantas vezes encontraste o elemento. Espero ter ajudado! 😞 Já agora, também existe o método .count. count( x) Return the number of times x appears in the list. <3 life
rolando2424 Posted January 10, 2007 at 07:32 PM Report #75641 Posted January 10, 2007 at 07:32 PM Bem, apesar de ser ainda um iniciante. isto foi o que fiz assim muito rapidamente. Acredito que acha uma melhor maneira de fazer, mas não me lembrei 🙂 Bem, cá vai ele: # Primeiro de tudo... As listas list1=["ola", "mundo", "python"] list2=["eu", "ola", "dany"] list3=["dany", "python", "ola"] contador = 0 # Vamos criar um contador para manter a contagem das vezes que as palavras aparecem nas listas. def contagem(palavra): # Funcao para fazer as contagens que vai usar a variavel "palavra" (ja tratamos disso mais a frente) global contador # Vamos usar o contador definido antes (como foi defenido fora da funcao, temos que o "importar") if palavra in list1: # Se a palavra estiver na list1 contador = contador + 1 # Adiciona mais um valor ao contador if palavra in list2: # Se a palavra estiver na list2 contador = contador + 1 # Adiciona mais um valor ao contador if palavra in list3: # A mesma coisa... contador = contador + 1 # Yup... E isso print palavra, contador # imprimir a palavra e o contador contador = 0 # Voltar a por o contador a 0, porque senao ia estar sempre a adicionar raw_input() # Apenas para evitar que o script saia logo def procura(): # Funcao para a procura das palavra print """Queres procurar uma palavra na lista? Diz-me qual e: """, # Uma pequena mensagem para escolheres a palavra palavra = raw_input() # Raw_input, para digitares a palavra (penso que podia por a mensagem entre os parentises do raw_input, mas eu prefiro o codigo assim ) contagem(palavra) # Por fim chama a funcao "contagem" usando a variavel palavra defenida acima procura() Não está assim grande coisa, pois, tal como disse, ainda sou um iniciante 😄 Talvez depois o Triton te possa ajudar mais. Já agora, se quiseres, tens o ficheiro de texto com o código em anexo. Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄
Triton Posted January 10, 2007 at 10:23 PM Report #75653 Posted January 10, 2007 at 10:23 PM Nssa solução tens de dizer qual é a palavra que queres procurar, ele quer que dadas as listas, o programa diga logo as palavras encontradas. 🙂 Mas bom trabalho! 🙂 <3 life
rolando2424 Posted January 10, 2007 at 10:24 PM Report #75656 Posted January 10, 2007 at 10:24 PM Nssa solução tens de dizer qual é a palavra que queres procurar, ele quer que dadas as listas, o programa diga logo as palavras encontradas. 🙂 Mas bom trabalho! 🙂 Ah ok... Tenho de ver isso... Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄
a13293 Posted January 12, 2007 at 05:04 PM Author Report #75939 Posted January 12, 2007 at 05:04 PM pois o Triton tem razao!!!.. mas obrigado pelas dicas... vou ver isto depois logo digo alguma coisa...
Triton Posted January 12, 2007 at 06:22 PM Report #75968 Posted January 12, 2007 at 06:22 PM lista1=["ola", "mundo", "python"] lista2=["eu", "ola", "dany"] lista3=["dany", "python", "ola"] lista4=[] for i in lista1: if i not in lista4: lista4.append(i) for i in lista2: if i not in lista4: lista4.append(i) for i in lista2: if i not in lista4: lista4.append(i) for i in lista4: print i, lista1.count(i)+lista2.count(i)+lista3.count(i) Output: ========= >>> ola 3 mundo 1 python 2 eu 1 dany 2 >>> Já não programava em Python há algum tempo. 😁 O algoritmo não é o mais eficiente, but it gets the job done! 🙂 EDIT: import sets lista1=["ola", "mundo", "python"] lista2=["eu", "ola", "dany"] lista3=["dany", "python", "ola"] lista = sets.Set(lista1+lista2+lista3) for i in lista: print i, lista1.count(i)+lista2.count(i)+lista3.count(i) <3 life
rolando2424 Posted January 12, 2007 at 11:23 PM Report #76017 Posted January 12, 2007 at 11:23 PM lista1=["ola", "mundo", "python"] lista2=["eu", "ola", "dany"] lista3=["dany", "python", "ola"] lista4=[] for i in lista1: if i not in lista4: lista4.append(i) for i in lista2: if i not in lista4: lista4.append(i) for i in lista2: if i not in lista4: lista4.append(i) for i in lista4: print i, lista1.count(i)+lista2.count(i)+lista3.count(i) Output: ========= >>> ola 3 mundo 1 python 2 eu 1 dany 2 >>> Já não programava em Python há algum tempo. 😁 O algoritmo não é o mais eficiente, but it gets the job done! 🙂 NIce, por acaso até está bem pensado... Mas só por acaso 😉 ;) Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now