检查元素是否是列表的一部分并创建新列表

时间:2018-05-30 03:24:00

标签: python list gspread

所以我有两个列表(通过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循环没有按预期工作。

1 个答案:

答案 0 :(得分:0)

要同时迭代列表,请使用zip。浏览列表并检查相应的brandseller是否在批准的列表中。

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']