一.集合(set)-hash表(无序)
集合的底层基于hash表实现的,特点:无序(不能通过下标访问)、不能重复(集合中的元素都是唯一的)
(1).集合的定义:
方法一:[python是弱类型语言,类型由值决定]
s={} #此时s类型是字典
s={1,2,3} #花括号里至少有一个元素,此时才是集合
方法二:使用set()函数
s=set({1,2,3}) #创建集合并赋值
(2).如何访问集合中的元素:因为无序,所以不能使用下标
(3).求集合里元素个数:使用全局函数len()
s={1,2,3}
len(s)
(4)如何遍历容器集合:使用for循环
#for循环
for i in s:
print(i)
(5).集合中的方法:
dir(set)
['add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
1.add()#增加不存在的元素(使用的hash算法)
eg:s={1,2,3}
s.add(5)
s.add(5)
2.clear()#清除元素
3.copy()#拷贝对象,是在堆内存中进行对象拷贝的
eg:s1={1,2,3,8}
s2={1,2,3,4,5}
s1=s2.copy()
4.remove()#移除元素
eg:s1={1,2,3,8}
s1.remove(3)
如果元素不存在,则抛出异常
5.difference()#差集
eg:s1={1,2,3,8}
s2={1,2,3,4,5}
s1.difference(s2)#相对于s1,s2中没有的
s2.difference(s1)#相对于s2,s1中没有的
6.intersection#交集
eg:s1={1,2,3,8}
s2={1,2,3,4,5}
s1.interaection(s2)
7.union#并集
eg:s1={1,2,3,8}
s2={1,2,3,4,5}
s1.union(s2)
8.update()#更新集合,合并集合
eg:s1={1,2,3,8}
s2={1,2,3,4,5}
s1.update(s2)
这时s1发生变化,s1里的内容为:s1和s2的并集
8.discard()#移除元素,如果元素不存在,则什么都不做
eg:s1={1,2,3,8}
s1.discard(2)
s1.discard(9)
补充:
1.hash算法(散列算法):算出唯一值,不可逆的
求模是最简单的一种hash算法
特点:无序的,唯一的
2.import os
os.system(“windows支持的命令”)
下一个讲解的容器是元组: