所以我有两个列表(通过gspread库从谷歌表中提取) 谷歌电子表格中的一栏有所有品牌名称。我得到了整个专栏并创建了一个名为'approved_brand'的列表。 我得到了另一个专栏,称之为'approved_seller'。 这些品牌和卖家(在宏观计划中)是每个品牌的批准卖家名单。
我有另一个电子表格,其中列出了销售特定品牌的实际卖家。 我的目标是看看特定品牌的实际卖家是否获得批准。
例如:
approved_brand=[1,2,3,4,5]
,approved_seller=[a,b,c,d,e]
(意思是a被批准出售1,b被批准为2,c为3,等等)
brand=[1,7,8,9,4,5]
,seller=[a,d,f,g,g,e]
在检查之后,您应该获得两个返回[1,5]
和[a,e]
的列表,这意味着在这些品牌的所有卖家中,只有一个被批准卖出1而e被批准卖出4个。
获取已批准的品牌和卖家的列表。
approved_brand=referenceTable.col_values(1)
del approved_brand[0]
approved_seller=referenceTable.col_values(2)
del approved_seller[0]
从谷歌电子表格中存储的数据中获取所有品牌和卖家(实际品牌和相应卖家列表)
brand=inputfile.col_values(2)
del brand[0]
seller=inputfile.col_values(4)
del seller[0]
for i in range(len(brand)):
if brand[i] in approved_brand and seller[i] in approved_seller:
approvedBrandInActual.append(brand[i])
approvedSellerInActual.append(seller[i])
这最后一个for循环没有按预期工作。
答案 0 :(得分:0)
要同时迭代列表,请使用zip
。浏览列表并检查相应的brand
和seller
是否在批准的列表中。
approved_brand=[1,2,3,4,5]
approved_seller=['a','b','c','d','e']
brand=[1,7,8,9,4,5]
seller=['a','d','f','g','g','e']
br, sr = [], []
for b, s in zip(brand, seller):
if (b, s) in zip(approved_brand, approved_seller):
br.append(b)
sr.append(s)
print(br) # [1, 5]
print(sr) # ['a', 'e']