目录
1.集合的定义
2.集合的创建
3.集合元素的判断操作
4.集合元素的新增
5.集合元素的删除
6.集合之间的关系
7.集合的数学操作
8.集合生成式
9.列表、字典、元组、集合总结
10.字符串的概念
11.字符串的定义
s={'Python','hello',90}
s=set(range(6))
print(s) #{0, 1, 2, 3, 4, 5}
#集合元素不能重复
print(set([3,4,5,5,7,7])) #列表转成集合,同时去掉了重复元素,集合中元素无序,通过hash存储,{3, 4, 5, 7}
print(set((3,4,5,8))) #元组转成集合,同时去掉了重复元素,集合中元素无序,通过hash存储,{8, 3, 4, 5}
print(set('Python')) #字符串转成集合,同时去掉了重复元素,集合中元素无序,通过hash存储,{'P', 't', 'h', 'y', 'n', 'o'}
print(set({1,2,3,9,5})) #集合转成集合,同时去掉了重复元素,集合中元素无序,通过hash存储,{1, 2, 3, 5, 9}
print(set()) #定义空集合,set()
#不可以直接使用花括号定义空集合
s={} #这是字典类型
s={10,20,30,100}
print(10 in s) #True
print(90 in s) #False
print(80 not in s) #True
print(20 not in s) #False
s={10,20}
s.add(100)
print(s) #{100, 10, 20}
s.update({200,400})
print(s) #{400, 100, 20, 200, 10}
s.update([70,60])
s.update((50,))
print(s) #{400, 50, 100, 20, 70, 200, 10, 60}
s={10,40,20,80,30}
s.remove(80)
print(s)
#s.remove(100) #抛出异常KeyError
s.discard(100) #100不存在,但是不会抛出异常
s.pop() #删除任意元素,不能指定参数
s.clear() #set(),清空集合
#使用==或者!=进行判断
s1={10,20,30,40}
s2={40,30,10,20}
print(s1==s2) #True
print(s1!=s2) #False
s1={10,20,30,40,50,60}
s2={10,20,30,40}
s3={10,20,90}
print(s2.issubset(s1)) #True
print(s3.issubset(s1)) #False
s1={10,20,30,40,50,60}
s2={10,20,30,40}
s3={10,20,90}
print(s1.issuperset(s2)) #True
print(s1.issuperset(s3)) #False
s1={10,20,30,40,50,60}
s2={10,20,30,40}
s3={80,90}
print(s1.isdisjoint(s2)) #False
print(s1.isdisjoint(s3)) #True
s1={10,20,30,40}
s2={20,30,40,50,60}
#intersection()方法与&等价,求交集
print(s1.intersection(s2)) #{40, 20, 30}
print(s1 & s2) #{40,20,30}
s1={10,20,30,40}
s2={20,30,40,50,60}
#union()方法与|等价,求并集
print(s1.union(s2)) #{40, 10, 50, 20, 60, 30}
print(s1 | s2) #{40, 10, 50, 20, 60, 30}
s1={10,20,30,40}
s2={20,30,40,50,60}
#difference()方法与-等价,求差集
print(s1.difference(s2)) #{10}
print(s1 - s2) #{10}
s1={10,20,30,40}
s2={20,30,40,50,60}
#symmetric_difference()方法与^等价,求对称差集
print(s1.symmetric_difference(s2)) #{50, 10, 60}
print(s1 ^ s2) #{50, 10, 60},s1中的10和s2中的50,60
s={i*i for i in range(6)}
print(s) #{0, 1, 4, 9, 16, 25}
数据结构 | 是否可变 | 是否重复 | 是否有序 | 定义符号 |
列表(list) | 可变 | 可重复 | 有序 | [] |
元组(tuple) | 不可变 | 可重复 | 有序 | () |
字典(dict) | 可变 | key不可重复 | 无序 | {key:value} |
value可重复 | ||||
集合(set) | 可变 | 不可重复 | 无序 | {} |
a='Python'
b="Python"
c='''Python'''
print(a,b,c) #Python Python Python
print(id(a),id(b),id(c)) #2838701557664 2838701557664 2838701557664,可以看到id相同
a+=b
print(a,b) #Pythonb Python
print(id(a),id(b),id(c)) #2838703054896 2838701557664 2838701557664,可以看到a的id改变了
备注:在需要进行字符串拼接时建议使用str类型的joint()方法,而非+,因为join()方法是先计算出所有字符串的长度,然后再拷贝,只new一次对象,效率要比“+”高