#python #list #csv #if-statement
#питон #Список #csv-файл #if-оператор
Вопрос:
Я создаю CSV-файл, в котором есть три магазина (магазин A, B и C). Есть строки товаров, и в ячейках строк есть значения, указывающие, продает ли магазин данный товар или нет.
Я пытаюсь просмотреть каждую строку, и моя цель — найти товары, которые продаются только в одном магазине (товар, уникальный для магазина)
Если есть элемент, уникальный для магазина, я хочу добавить элемент в список (у меня есть по одному для каждого магазина).
моя проблема в том, что когда я печатаю все товары с моими условиями, он показывает мне все товары, которые уникальны для магазина, однако, когда я добавляю их в свой список и печатаю свой список, отображается только последний элемент (именно поэтому я думаю, что он перезаписывается).
import csv
reader = csv.DictReader(open("storeLists.csv"))
for row in reader:
STORES = [row]
"COMPARING ALL THE SHOPS TO GATHER ALL THE UNIQUE ITEMS OF EACH SHOP AND SAVE THE INTO A LIST"
if row["STORE A"] == "Y" and row["STORE B"] != "Y" and row["STORE C"] != "Y":
storeAuniqueItems = []
storeAuniqueItems.append(row["NAME"])
elif row["STORE A"] != "Y" and row["STORE B"] == "Y" and row["STORE C"] != "Y":
storeBuniqueItems = []
storeBuniqueItems.append(row["NAME"])
elif row["STORE A"] != "Y" and row["STORE B"] != "Y" and row["STORE C"] == "Y":
storeCuniqueItems = []
storeCuniqueItems.append(row["NAME"])
else:
print("NaN")
print("STORE A:", storeAuniqueItems)
print("STORE B:", storeBuniqueItems)
print("STORE C:", storeCuniqueItems)
Ответ №1:
Вы создаете новый список на каждой итерации, что вызывает проблему.
Попробуйте следующее:
import csv
reader = csv.DictReader(open("storeLists.csv"))
storeAuniqueItems = []
storeBuniqueItems = []
storeCuniqueItems = []
for row in reader:
STORES = [row]
"COMPARING ALL THE SHOPS TO GATHER ALL THE UNIQUE ITEMS OF EACH SHOP AND SAVE THE INTO A LIST"
if row["STORE A"] == "Y" and row["STORE B"] != "Y" and row["STORE C"] != "Y":
storeAuniqueItems.append(row["NAME"])
elif row["STORE A"] != "Y" and row["STORE B"] == "Y" and row["STORE C"] != "Y":
storeBuniqueItems.append(row["NAME"])
elif row["STORE A"] != "Y" and row["STORE B"] != "Y" and row["STORE C"] == "Y":
storeCuniqueItems.append(row["NAME"])
else:
print("NaN")
print("STORE A:", storeAuniqueItems)
print("STORE B:", storeBuniqueItems)
print("STORE C:", storeCuniqueItems)