Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Reno70

Listas de outras funções

Mensagens Recomendadas

Reno70

Eu tenho duas funções nas quais numa delas temos definidas listas, e preciso de usar essa mesma lista mas noutra função e não estou a ver como faço

def funcao1():
...
lista1 = [.....]
....

def funcao2():
#preciso de chamar a lista aqui

Editado por Reno70

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Reno70

Mas a lista não é dada , eu tenho de fazer essa função para " achar " a lista e depois tenho de usar essa lista noutra função

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pwseo

E se definires uma variável fora das funções, por exemplo lista1 = [], e depois preenches essa lista dentro da primeira função... e poderás utilizá-la na segunda função também.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Reno70

Tipo assim :


lista1 = []

def funcao1():
  ...
  lista2=[]
  lista1.extend(lista2)

def funcao2():
 ...
# e aqui ja poderei usar a lista1 ?

Editado por Reno70

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pwseo

Não há nada como experimentares. Não se pode responder a tudo; para vocês aprenderem a programar, precisam de experimentar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Reno70

Ja testei nao deu, fiz um print da lista 1 a ver se funcionava e da lista vazia e se fizer a parte do append fora da função nao reconhece a lista 2 , fiz assim:

lista1 = []
def funcao1():
  ...
  lista2=[]
  lista1.extend(lista2)
print lista1

def funcao2():
 ...

Editado por Reno70

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pwseo

Tens que mostrar o código que utilizaste para testar para percebermos o que está a acontecer.

Outra pergunta: por que motivo precisas de modificar uma variável externa? não podes simplesmente utilizar o resultado de funcao1() como argumento de funcao2()? Ou isto é assim exigido nalgum enunciado?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Reno70

É o mesmo enunciado que anda aqui neste forum , aquele da média das idades dos animais ? A 1º função é para calculares a lista de dicionarios com a média e depois precisas dessa lista na 2a função para transformar em ficheiro CSV , é o enunciado que o Shad07 pos.

A questão é que o codigo que esta para tras é irrelevante porque serve apenas para chegar a lista 1 , depois nao consigo juntar a 1 á lista 2.

donos=[]
def calcula_media(tabela_animais,tabela_donos):
lista_dicionario= [....]
donos.extend(lista_dicionario)

print donos

def media_idades(ficheiro_animais, ficheiro_donos,ficheiro_media):
	....
	for linha in donos:
	 ......

Esse print que eu fiz ai está-me a dar lista vazia [ ] e deveria dar a lista igual á lista_dicionario para depois a puder usar na 2a funçao.

Editado por Reno70

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pwseo

Reno70,

Por que motivo é que vocês não tentam resolver os problemas falando uns com os outros? De qualquer modo, eu já referi uma possível solução sem utilizares uma variável externa: utilizas o resultado de uma função como argumento da outra.

Quanto ao código que dizes ser irrelevante, não é bem assim, pois o comportamento de Python no que diz respeito a variáveis locais e globais tem muito que se lhe diga. Não falam disto nas aulas?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Reno70

A questão é que aqui parece-me estar a falar alguma coisa muito simples uma vez que o que eu estou a fazer tambem o é. Eu agora testei diferente por exemplo:

donos=[]
def calcula_media(tabela_animais,tabela_donos):
    lista_dicionario= [1,2,3]
    donos.extend(lista_dicionario)

print donos

Esta de cima dá lista vazia , no entanto se eu meter o print dentro da função a lista donos ( variavel global ) já aparece [1,2,3], como é que isso me pode ajudar para passar para a 2º função?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pwseo

Reno70,

Quem vos está a ensinar Python? Conheces o conceito de «função»? Se sim, para que serve a palavra-reservada return dentro de uma função? E como poderias utilizá-la para aplicar uma função ao resultado de outra função?

São lacunas bastante graves que terás que estudar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.