Jump to content

Recommended Posts

Posted

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....

Posted

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

Posted

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 😄

Posted

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 😄

Posted
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

Posted

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 😄

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.