首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

Python集合学习笔记

2024-12-20 来源:化拓教育网

定义:

由不同的元素组成的集合,集合中是一组无序排列的可hash值,可作为字典的key,而且集合中的值不可重复。

特性:

集合的目的就是将不同的值存放在一起,不同的集合间来做关系运算,无序纠结集合中单个值

集合包括可变集合和不可变集合

hash是什么?

打个比方,比如说有一个文件(不管多大),对这个文件要进行一个hash校验,会得到一个校验值(固定长度)。

hash是一种统称,具体要进行校验的话,是需要调用它下面的算法。(校验就是通过一个算法算出这个文件的一个值)。

特点:

1.只要用的算法是一定,那么得到的值的长度永远是一定的

2.原值(被校验的值)只要改一点,那么在此校验的值将会改变

3.不可逆。不可能通过一串hash值来推导出这个文件内容

算法:MD5 SH512等等

用途:最多的用途就是进文件校验(看文件是否被篡改)。再一个就是tcp/ip协议。只能对不可变的值进行hash校验。如果集合中有可变类型那么回保错。

s={1,'a',[1,2,3],'a'}
print(s)

Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/untitled/day9/集合.py", line 4, in <module>
    s={1,'a',[1,2,3],'a'}
TypeError: unhashable type: 'list'

e,g

说列表是不可hash类型

在python中,看到不可hash类型就是可变类型,反之,可hash类型就是不可变类型

去重

s={1,'a','a'}
print(s)

{'a', 1}

无序

s={1,'a',(1,2,3),}
print(s)

{'a', 1, (1, 2, 3)}


s=set('hello')
print(s)

s=set(['alex','alex','sb'])
print(s)

s={1,2,3,4,5,6}

添加

s.add('s')
 s.add('3')
s.add(3)
print(s)

清除

s.clear()
 print(s)

复制

s1=s.copy()

随机删

s={'sb',1,2,3,4,5,6}
s.pop()

指定删除

s.remove('sb')
s.remove('hellol') #删除元素不存在会报错
s.discard('sbbbb') #删除元素不存在不会报错
print(s)

求交集

python_l=['lcg','szw','zjw','lcg']
linux_l=['lcg','szw','sb']
 p_s=set(python_l)
 l_s=set(linux_l)
print(p_s,l_s)
print(p_s.intersection(l_s))
print(p_s&l_s)

求并集

print(p_s.union(l_s))
print(p_s|l_s)

差集

print('差集',p_s-l_s)
print(p_s.difference(l_s))
print('差集',l_s-p_s)
print(l_s.difference(p_s))

交叉补集

print('交叉补集',p_s.symmetric_difference(l_s))
print('交叉补集',p_s^l_s)

python_l=['lcg','szw','zjw','lcg']
linux_l=['lcg','szw','sb']
p_s=set(python_l)
l_s=set(linux_l)
print(p_s,l_s)
print('差集',p_s-l_s)
显示全文