Python设计模式 专题
您的位置:python > Python设计模式专题 > 集合
集合
作者:--    发布时间:2019-11-20

一个集合可以被定义为无序的集合,它是可迭代的,可变的,并且其中不包含重复的元素。 在python中,set类是数学集的一种表示法。 使用集合的主要优点是它包含用于检查特定元素的高度优化的方法。

python包含一个独立的类别,称为冻结集。 这些集合是不可变的对象,只支持产生所需结果的方法和运算符。

如何实现集合?

以下程序演示如何实现集合 -

# set in python

# creating two sets
set1 = set()
set2 = set()

# adding elements to set1
for i in range(1, 6):
   set1.add(i)

# adding elements to set2
for i in range(3, 8):
   set2.add(i)

print("set1 = ", set1)
print("set2 = ", set2)
print("\n")

# union of set1 and set2
set3 = set1 | set2# set1.union(set2)
print("union of set1 & set2: set3 = ", set3)

# intersection of set1 and set2
set4 = set1 & set2# set1.intersection(set2)
print("intersection of set1 & set2: set4 = ", set4)
print("\n")

# checking relation between set3 and set4
if set3 > set4: # set3.issuperset(set4)
   print("set3 is superset of set4")
elif set3 < set4: # set3.issubset(set4)
   print("set3 is subset of set4")
else : # set3 == set4
   print("set3 is same as set4")

# displaying relation between set4 and set3
if set4 < set3: # set4.issubset(set3)
   print("set4 is subset of set3")
   print("\n")

# difference between set3 and set4
set5 = set3 - set4
print("elements in set3 and not in set4: set5 = ", set5)
print("\n")

# checkv if set4 and set5 are disjoint sets
if set4.isdisjoint(set5):
   print("set4 and set5 have nothing in common\n")

# removing all the values of set5
set5.clear()

print("after applying clear on sets set5: ")
print("set5 = ", set5)

执行上面示例代码,得到以下结果 -

以下程序演示冻结集合的使用 -

normal_set = set(["a", "b","c"])

# adding an element to normal set is fine
normal_set.add("d")

print("normal set")
print(normal_set)

# a frozen set
frozen_set = frozenset(["e", "f", "g"])

print("frozen set")
print(frozen_set)

执行上面示例代码,得到以下结果 -


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册