我正在使用Python v3.3.2
我研究了这个并且似乎没有运气,所以我想我会发布。
我有一个类文件,它创建一个空列表并从另一个文件中收集值并将所述值放入列表中。它执行两次,因此它创建了两组数字。例如:
[1, 2, 3, 4, 5, 6, 7]
[5, 6, 7, 8, 9, 10]
新的数字列表被抛入等式中。例如:
[1, 5, 7, 3]
我帮助确定新的数字集是否是两个集合中的任何一个的子集。例如:
[1, 5, 7, 3] is subset of [1, 2, 3, 4, 5, 6, 7]
[1, 5, 7, 3] is not a subset of [5, 6, 7, 8, 9, 10]
我还需要帮助确定两组的交集。例如:
[5, 6, 7] is the intersection of [1, 2, 3, 4, 5, 6, 7] and [5, 6, 7, 8, 9, 10]
我需要帮助的最后一件事是将两组合并并删除重复项。例如:
[1, 2, 3, 4, 5, 6, 7] + [5, 6, 7, 8, 9, 10] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
任何人都可以帮我解决这些问题吗?
答案 0 :(得分:3)
您提到的所有操作都是由set
内置数据结构提供的,或者可以根据其操作实现,您只需要查看链接的文档即可。例如:
s1 = set([1, 5, 7, 3])
s2 = set([1, 2, 3, 4, 5, 6, 7])
# is s1 a subset of s2?
s1.issubset(s2)
=> True
# set intersection
set([1, 2, 3, 4, 5, 6, 7]) & set([5, 6, 7, 8, 9, 10])
=> set([5, 6, 7])
# set union
set([1, 2, 3, 4, 5, 6, 7]) | set([5, 6, 7, 8, 9, 10])
=> set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
答案 1 :(得分:1)
在Python中使用set data structure。您可以使用set()
自由地将列表转换为集合,并使用list()
设置为列表。 Python中的集合几乎遵循mathematical sets的定义。这只是意味着集合中的所有项目都是不同的。将列表转换为集合会隐式删除所有重复项。
子集:
>>> a = [1, 5, 7, 3]
>>> b = [1, 2, 3, 4, 5, 6, 7]
>>> set(a).issubset(b)
True
>>> b = [5, 6, 7, 8, 9, 10]
>>> set(a).issubset(b)
False
路口:
>>> a = [1, 2, 3, 4, 5, 6, 7]
>>> b = [5, 6, 7, 8, 9, 10]
>>> list(set(a).intersection(b))
[5, 6, 7]
合并两组并删除重复项:
>>> a = [1, 2, 3, 4, 5, 6, 7]
>>> b = [5, 6, 7, 8, 9, 10]
>>> list(set().union(a, b))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]