day09--基本数据类型集合及其内置函数
一、集合的定义
1.1定义:在{}内用逗号隔开多个元素,元素为不可变数据类型,且元素的排列是无序的。
>>> list_1 = ['egon','male',18,['play','read']] >>> s = set(list_1) Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> s = set(list_1) TypeError: unhashable type: 'list' >>> 提示集合的元素必须是可哈希的,即不可变类型
1.2集合的元素是无序的,且是不重复的
>>> list1 = [1,1,2,2,3,3] >>> s = set(list1) >>> print(s) {1, 2, 3} >>>
注意:s = {} 系统默认是空字典
1.3类型转换
集合可以将可迭代对象转换成结合,但是如果可迭代对象是容器类型,那么可迭代对象的子元素必须是不可变数据类型
1.4内置方法
(1)取交集 s1 & s2
friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们 friends2 = {"Jy","ricky","jason","egon"} # 用户2的好友们 res = friends1 & friends2 res = friends1.intersection(friends2) print(res) {'egon', 'jason'}
(2)取并集 s1 | s2
friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们 friends2 = {"Jy","ricky","jason","egon"} # 用户2的好友们 res = friends1 | friends2 res = friends1.union(friends2) print(res) {'egon', 'kevin', 'ricky', 'Jy', 'zero', 'jason'}
(3)取差集 s1 - s2 or s1.difference(s2)
取f1独有的好友
friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们 friends2 = {"Jy","ricky","jason","egon"} # 用户2的好友们 res = friends1 - friends2 res = friends1.difference(friends2) print(res) {'kevin', 'zero'}
取f2独有的好友
friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们 friends2 = {"Jy","ricky","jason","egon"} # 用户2的好友们 res = friends2 - friends1 res = friends1.symmetric_difference(friends2) print(res) {'ricky', 'Jy'}
(4)对称差集 f1 ^ f2
friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们 friends2 = {"Jy","ricky","jason","egon"} # 用户2的好友们 res = friends2 ^ friends1 print(res) {'kevin', 'Jy', 'ricky', 'zero'}
(5)父子集(包含关系)
s1 = {1,2,3} s2 = {1,2,4} # 不存在包含关系,下面比较均为False print(s1.issuperset(s2)) print(s1 > s2) print(s1 < s2)
s1 = {1,2,3} s2 = {1,2} print(s1.issubset(s2)) print(s1 > s2) # 当s1大于或等于s2时,才能说s1是s2的爹
s1={1,2,3} s2={1,2,3} print(s1 == s2) # s1与s2互为父子
1.4 去重
注意:1、只能针对不可变类型去重
2、无法保证原来的顺序
l = [1,'a','b',1,1,2,3] l = list(set(l)) print(l) [1, 2, 3, 'a', 'b']
1.5其他内置方法
(1) discard
s = {1,2,3} s.discard(4) # 删除元素不存在,do nothing print(s)
remove
s = {1,2,3} s.remove(4) # 删除元素不存在,则会报错 print(s)
pop
>>> s = {1,2,3} >>> res=s.pop() >>> print(res) 1 >>>
(2)update
>>> s = {1,2,3} >>> s.update([4,5,6]) >>> print(s) {1, 2, 3, 4, 5, 6} >>> s.update([7,[8,9]]) Traceback (most recent call last): File "<pyshell#16>", line 1, in <module> s.update([7,[8,9]]) TypeError: unhashable type: 'list' >>> 目标对象的子元素必须为可哈希数据类型(即不可变数据类型)
(3)add
s = {1,2,3} s.add(4) print(res)
其他方法了解