Não sei se entendi direito o vc quer, mas segue um exemplo de matriz dinâmica, usando list comprehension:
V=4
dist = [[i for i in range(V)] for j in range(V) ]
O codigo acima acaba de gerar, baseado no valor da sua variavel V(4), uma lista com 4 listas (lista 0, 1, 2, 3 ) cada uma das listas tem 4 itens (item 0,1,2,3).
Saída:
DICA: No começo , listas podem parecer difíceis mas, definitivamente, não são. Esvazia a mente e desenhe cada passo do comando na cabeça:
for i in range(V): #Cria o loop para cada " i " num rande 0 a 3 (4 vezes), faça: dist.append([]) # Cria uma sub-lista vazia na lista chamada dist for j in range(V): #Cria o segundo loop dentro do primeiro fazendo: - para cada " j " num loop de 4 vezes, faça: dist[i].append(j) #Lembrando aqui é o loop 2 tarefa #1 - adicione o valor de " j " na sub- lista " i " na lista mae dist
Sacou?
Agora, sobre o seu codigo, olha só como o python interpreta isso. Descontrair é sempre baum nesses casos :)
V = 4 PYTHON: Feito, chefe! Criei aqui uma variável chamada V e atribuí a ela o valor 4.
dist = [] PYTHON: Feito, chefe! Criei aqui uma lista vazia chamada dist.
for i in range(V): PYTHON: opa! Vamos ver: V =4, então um range de 0 ate 3 é igual a 0 1 2 3. Endenti, chefe! Comecei aqui um loop que rodará 4 vezes e a cada
iteração eu vou atribuir o valor atual para variável i, que neste caso é 0
for j in range(V): PYTHON: Entendido, você quer que a primeira tarefa do 1 primeiro lopp seja criar outro loop de 4 iterações e atribuindo o valor da iteração
para a variavel j.
Agora tenho que executar todas as tarefas desse loop, antes de voltar pro loop1. .ok, vamos lá.
dist[i][j] = 0 PYTHON: humm vamos ver: você quer que eu atribua valor 0 pra o item numero 0 da sublista 0 na lista mae dist. Mas ai você me quebra, chefe!
A lista tá vazia, lembra? Como que vou atribuir um valor para uma item que não existe numa sublista que não existe?
IndexError: list index out of range
erro de Indice : Indice da lista esta fora de alcance, chefe.
para você não se confundir, mais alguns exemplos:
#Vamos gerar 3 listas e dar nomes criativos elas :)
#Imprima o item de índice 0 da lista chamada lista_de_listas
print(lista_de_listas[0])
[0, 1, 2, 3]
#Imprima o item de índice 1 da lista chamada lista_de_listas
print(lista_de_listas[1])
[4, 5, 6, 7]
#Imprima o item de índice 2 da lista chamada lista_de_listas
print(lista_de_listas[2])
[8, 9, 10, 11]
#Forçando um erro
#Imprima o item de índice 5 ( que nao existe) da lista chamada lista_de_listas
print(lista_de_listas[5])
IndexError: list index out of range
Espero ter ajudado! Estou a um bom tempo longe do forum, mei que perdi a pratica de explicar.rsrs.
abs!
Uma vida sem desafios não vale a pena ser vivida.
Sócrates