• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Engenheira

[Problema] Talvez seja meio noob, mas eu arrisco! :P Listas!!

5 mensagens neste tópico

Ola!

Bem, estou aqui com um problema estranho que nao consigo resolver :S:S

userPocs=UserPoc.objects.all()
userInfos=UserInfo.objects.all()
userlist=[]
    for u in userPocs:
        for u2 in userInfos:
            #(...)
            userlist.append({'username':u.user_name,
                           #(...) outros dados do utilizador, demasiados para os por aqui todos
                           'accessgranted':access})
#Este userlist e uma lista de dicionarios, se nao estou em erro... Fui eu que criei este codigo ms ainda sou noob em python, tem de dar aquele desconto... lol
#Cada elemento da lista userlist e um dicionario com os dados de um utilizador la dentro

#(...) Index e um indice valido da lista
    qualquerCoisa=userlist[index]    #tanto que e valido que isto nao da erro!
    #assert False
    del userlist[index]    #mas aqui ja da erro :S

Isto e parte de uma funcao view da aplicacao de web q eu estou a fazer. E eu estou a fazer debugging c o comando "assert False".

Quando coloco o assert False no local onde esta comentado no codigo, dentro da variavel qualquerCoisa esta informacao correspondente a um utilizador, o que quer dizer que o indice corresponde a um indice valido dentro da lista. No entanto, se eu comentar o assert False da-me o seguinte erro no del:

IndexError

list assignment index out of range

Como e que pode dar este erro se esta la informacao dentro daquele indice? Nao percebo  :D  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, eu tenho aqui um erro no codigo, depois de algum tempo a olhar pra isto ja descobri.... mas agora tenho outro problema, tenho de reestruturar o codigo... :bored:

De qualquer forma ainda nao entendo porque e que aquilo nao funciona, mas pronto,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é porque não existe essa chave na array. Se usares:

try:
del userlist[index]
except IndexError:
pass
# resto do código

Já funciona. :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

...no array.

Vai dar ao mesmo after all. :) A ideia é que interessa :D
0

Partilhar esta mensagem


Link 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