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

Checking if elements are part of list and creating a new list

所以我有两个列表(它是通过 gspread 库从 google 表中提取的) google 电子表格中的一栏包含所有品牌名称。我得到了整个专栏并创建了一个名为 'approved_brand' 的列表。 我得到了另一个专栏,并将其命名为 'approved_seller'。 这些品牌和卖家(在宏伟的计划中)是每个品牌的认可卖家列表。

我有另一个电子表格,其中有销售特定品牌的实际卖家列表。 我的 objective 是查看特定品牌的实际卖家是否被批准。

例如: 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] 查了一下,应该会得到returns[1,5][a,e]两个列表,意思是在这些品牌的所有卖家中,只有a获准销售1个,e获准销售4个。

获取已批准品牌和卖家的列表。

approved_brand=referenceTable.col_values(1)
del approved_brand[0]
approved_seller=referenceTable.col_values(2)
del approved_seller[0]

从 google 电子表格中存储的数据中获取所有品牌和卖家(实际品牌和相应卖家的列表)

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 循环没有按预期工作。

要同时遍历列表,请使用 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']