如何解决List.append() 似乎正在重写列表中的值
我正在导入一个 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)
解决方法
您在每次迭代中都创建了一个新列表,这导致了问题。
尝试以下操作:
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。