赞
踩
集合和列表基本一致,但是集合具有以下几个特点:
1.集合只能存储不可变对象
2.集合中存储的对象是无序的
3.集合中不能出现重复的元素
# 方式一
set1 = {'set'}
# 方式二
set2 = set() # 创建一个空字典
# set()函数中可以传递一个可迭代对象
set3 = set('set') # ser3 = {'s', 'e', 't'}
集合作为一种无序的序列,是不能够通过索引直接访问的,要想通过索引访问,只能先将它转化为其他有序序列,如元组和列表。并且由于集合是无序的,通过索引访问的时候也并非是按照存入的顺序。
set1 = {'P', 'y', 't', 'h', 'o', 'n'}
print(list(set1)[0])
print(tuple(set1)[0])
集合作为一种无序的序列,虽然不能通过索引访问,但是作为一种序列,依然可以使用for语句进行遍历。注意:遍历结果也是无序的。
set1 = {'P', 'y', 't', 'h', 'o', 'n'}
for i in set1:
print(i)
set1 = {'P', 'y', 't', 'h', 'o', 'n'}
'P' in set1 # True
'P' not in set1 # False
假设有集合A和集合B:
找集合A和和集合B中共有的元素就是求A和B的交集。
set1 = {1,2,3,4,5}
set2 = {3,4,5,6,7}
set3 = set1 & set2 # set3 = {3, 4, 5}
找集合A和和集合B中所有的元素就是求A和B的交集。
set1 = {1,2,3,4,5}
set2 = {3,4,5,6,7}
set3 = set1 & set2 # set3 = {1, 2, 3, 4, 5, 6, 7}
所有属于A且不属于B的元素的集合被称为A与B的差集。
set1 = {1,2,3,4,5}
set2 = {3,4,5,6,7}
set3 = set1 - set2 # set3 = {1, 2}
集合A和集合B中除去相同元素后剩下的元素的集合叫做A和B的异或集。
set1 = {1,2,3,4,5}
set2 = {3,4,5,6,7}
set3 = set1 ^ set2 # set3 = {{1, 2, 6, 7}
如果集合A中包含有集合B的所有元素且含有集合B没有的元素,那么集合B就是集合A的真子集。如果集合A和集合B中元素相同,就是子集。空集是任意非空集合的真子集。
set1 = {3,4,5}
set2 = {3,4,5,6,7}
set1 < set2 # True
set1 <= set2 # True
集合A中的每一个元素都在集合B中,且集合A中可能包含B中没有的元素,则集合A就是B的一个超集,反过来,B是A的子集。 A是B的超集,若A中一定有B中没有的元素,则A是B的真超集,反过来B是A的真子集。
set1 = {3,4,5}
set2 = {3,4,5,6,7}
set2 > set1 # True
set2 >= set1 # True
set1 = {1,2,3,4,5}
# len()函数可以用来求取集合中元素个数
len(set1) # 5
# 魔术方法 面向对象
set1.__len__() # 5
set1 = {1,2,3,4,5}
# del()函数可以删除整个集合并回收地址
del set1
# 因为set1已经被回收了,所以调用时会报错
print(set1) # NameError: name 'set1' is not defined
set1 = {1,2,3,4,5}
# add()方法可以向集合中添加元素
set1.add(6) # set1 = {1,2,3,4,5,6}
set1 = {1,2,3,4,5}
# clear()方法可以清空集合
set1.clear() # set1 = {}
set1 = {1,2,3,4,5}
# pop()方法会随机删除集合中一个元素并返回删除的元素
set1.pop()
set1 = {1,2,3,4,5}
# remove()方法会删除集合指定元素
set1.remove(5) # set1 = {1,2,3,4}
# 当删除元素不在集合中时会抛出异常
set1.remove(6) # KeyError: 6
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。