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独有的好友

扫描二维码关注公众号,回复: 9807309 查看本文章
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)

其他方法了解

猜你喜欢

转载自www.cnblogs.com/surpass123/p/12484228.html