2
I’m going through a text file and putting its contents in a list of objects, in which each object contains two "string-like" attributes: word and meaning... The problem is that after I go through the.txt file with the for loop, the list only has the last element inserted. What could be going on ?
Code:
import itemLista
"""
Conteúdo do arquivo itemLista.py
class Item:
palavra = ''
significado = ''
"""
objIten = itemLista.Item() # Cria um objeto do tipo Item
lista = []
i=0 # variável para controle de índice da lista
try:
arq = open('words.txt','r',encoding='utf-8') # abre o arquivo words.txt
arq.seek(0) # Realinha o ponteiro no arquivo na posição 0
for linha in arq:
linha = linha.rstrip() # Retira o caractere '/n' da linha
vet = linha.split(' ') # Quebra o conteúdo em duas partes (palavra e significado)
objIten.palavra = vet[0]
objIten.significado = vet[1]
lista.append(objIten)
print(lista[i].palavra,lista[i].significado) # Mostra todos os elementos da lista normal
i = i + 1
arq.close()
except Exception as e:
print("Erro ao abrir o arquivo!\n",e)
for item in lista:
print(item.palavra,item.significado) # Mostra apenas o ultimo elemento da lista várias vezes
You create
objIten
once and inside the loop you just change the values. Pro that does not create it also inside the loop?– Woss