append заменяет значения в списке вместо добавления, помогите решить проблему

!!!
cvs file
import csv
try:
with open("API_SP.DYN.LE00.IN_DS2_en_csv_v2_1622191.csv", encoding='utf-8') as r_file:
file_reader = csv.reader(r_file, delimiter=",")
count = 0
arr = [[]]
arr2 = [[]]
for row in file_reader:
if count > 3:
str = ", ".join(row)
List = str.split(', ')
arr.append(List)
count += 1
print(f'Всего в файле {count} строк.')
except Exception:
print("Ошибка при чтении файла")
arr.pop(0)
arr2.clear()
List = []
List.clear()
for i in arr:
n = 0
List.clear()
for j in i:
if n > 4:
if j == '':
break
List.append(j)
n += 1
#print("arr2 = ", arr2, "\n\n" , "list = ", List)
arr2.append(List)
List3 = arr2[224]
List4 = arr2[227]
print(List3)
print("\n\n\n")
print(List4)
Ответы (2 шт):
Автор решения: Danil
→ Ссылка
Проблема была в том что List как бы не был list
List = list(List)
arr2.append(List)
Автор решения: NykSu
→ Ссылка
Уж не знаю как у вас это без ошибок выполнялось и дошло до вашего вывода, что append не добавляет, а заменяет. Как бы он не может заменять, он действительно добавляет.
import csv
# вообще бы надо было следующие строки arr = [] и так же arr2 = []
arr = [[]] # уж не знаю зачем именно так инициализировать списки
arr2 = [[]] # но важно это было сделать здесь, а не внутри открытия файла
try:
with open("API_SP.DYN.LE00.IN_DS2_en_csv_v2_1622191.csv", encoding='utf-8') as r_file:
file_reader = csv.reader(r_file, delimiter=",")
count = 0
for row in file_reader:
if count > 3:
# !!! не используйте зарезервированные слова для переменных - str системный объект строки, неужели бкув мало что бы другое имя переменной дать? изменил на st
st = ", ".join(row)
List = st.split(', ')
arr.append(List)
count += 1
print(f'Всего в файле {count} строк.')
except Exception:
print("Ошибка при чтении файла")
arr.pop(0) # не менее странные очистки списков... в них еще ничего нет, что б чистить их...
arr2.clear() # и здесь тоже.
List = []
List.clear()
for i in arr:
n = 0
List.clear()
for j in i:
if n > 4:
if j == '':
break
List.append(j)
n += 1
arr2.append(List)
List3 = arr2[224]
List4 = arr2[227]
print(List3)
print("\n\n\n")
print(List4)
Вот такой код работает и что-то выводит.