Python 如何在一个周期内比较集合?
我有一个任务: 我们有一套存储产品N,商店的产品组合是这套产品中的很多产品。这家公司拥有100家商店。有关这些商店提供的产品组合的信息,请创建一个程序,该程序将构成以下集合:Python 如何在一个周期内比较集合?,python,Python,我有一个任务: 我们有一套存储产品N,商店的产品组合是这套产品中的很多产品。这家公司拥有100家商店。有关这些商店提供的产品组合的信息,请创建一个程序,该程序将构成以下集合: 集合A:所有商店拥有的产品集合 B:一套产品,每个产品至少在一家商店内 C:任何商店都没有的一套产品 我试过这个: import random storage = {"tomatoes", "cucumbers", "corn", "oranges
- 集合A:所有商店拥有的产品集合李>
- B:一套产品,每个产品至少在一家商店内李>
- C:任何商店都没有的一套产品
import random
storage = {"tomatoes", "cucumbers", "corn", "oranges", "bananas", "apples", "grapes", "mandarins", "crab sticks", "mayonnaise", "ketchup", "tomato sauce"}
n = int(input("enter number of stores "))
shop = []
k = len(storage)
st_list = list(storage)
stor_del = st_list[random.randint(0, k - 1)]
for i in range(n):
shop.append(set())
for j in range(5):
shop[i].add(st_list[random.randint(0, k - 1)])
shop[i].discard(stor_del)
print(shop[i])
但我不知道如何完成任务的第二部分。通过在集合上使用位运算符,可以在两个存储之间分别完成这些操作:
取两个集合的并集,返回一个新集合,其中包含其任一参数包含的每个项{a}{b}
获取两个集合的交集,返回一个只包含它们共享的项目的新集合{a}&{b}
获取两个集合的对称差,返回一个新集合,该集合仅包含任一集合包含的元素,但不同时包含这两个元素{a}^{b}
shop
是集合列表),则可以使用将同一运算符应用于所有集合:
import operator
from functools import reduce
union = reduce(operator.or_, shop)
intersect = reduce(operator.and_, shop)
sym_diff = reduce(operator.xor, shop)
(我使用模块而不是lambdas,只是因为它看起来像更干净的代码)。你的问题的标题是什么意思?您希望精确比较哪些集合?什么是“一个周期”?你能在没有“一个周期”要求的情况下解决这个任务吗?我需要将设置的“商店”与“自身”进行比较,以找出所有商店中都有哪些产品,或者哪些产品只在一个商店中,或者哪些产品根本没有。(对不起我的英语)非常感谢