1.概况
是无序的数据结构
集合内的个体统称为元素,每个元素不可重复
所有元素被放在大括号里面,元素之间通过逗号分隔
集合对象是一组无序的可哈希的值,集合元素是不可变的数据类型
2.定义集合
使用大括号语法
基本语法:
{元素1,元素2,元素3,元素4............元素n}
传递重复的值会自动去重
a = {"a","b",3,4,5} print(a)
使用set()函数
创建空集合的时候使用set()函数创建,不能使用大括号,{}是创建的字典
print(set(["a","c","f"])) print(set({"a":4,"f":8})) print(set([1,5,5,6,5,5])) print(set())
3.删除集合
只是删除变量对集合的引用关系,如果还有其余的对他进行引用,仍然有效
a = {"a","v","d"} print(a) del a print(a)
4. 访问集合
使用in或者not in检测是否存在集合元素,但是不能直接访问集合元素
使用len()函数获取集合的长度(元素的个数)
使用for来迭代集合的元素
间接访问,把集合转换成元组或列表,通过下标访问
5.添加元素
1.使用add()方法
a = set(range(20)) print(a) a.add(100) print(a)
如果该元素已存在,则不做任何操作
a = set(range(20)) print(a) a.add(10) print(a)
2.使用update()方法
a = set(range(20)) print(a) #添加一个字符串 a.update("python") print(a) #添加一个列表 a.update([111,222,333]) print(a) #添加一个元组,必须要加一个逗号,不然被判断为字符串 a.update(("sign",)) print(a) #添加一个集合 a.update({"ewioh"}) print(a)
6.删除元素
1.使用remove()
可移除指定元素,没有返回值,如果元素不存在则抛出异常
a = set(range(20)) print(a) a.remove(1) print(a)
如果删除的元素不存在,则抛出异常
a = set(range(20)) print(a) a.remove(100) print(a)
2.使用discard()
可移除指定元素,用法与remove()相同,元素不存在不执行删除操作
a = set(range(20)) print(a) a.discard(10) print(a) a.discard(100) print(a)
3.使用clear()
清空集合元素
a = set(range(20)) print(a) a.clear() print(a)
4.使用pop()
随机删除集合元素,并返回删除的集合元素
a = set(range(20)) l = [] #由于集合的上度是在变化的,所以不能直接访问集合 for i in range(len(a)): #将删除的集合添加到列表中 l.append(a.pop()) print(l)
7.检测元素
使用in或not in
a = {1,2,3} if "a" in a: a.remove("a") if "a" not in a: a.add("a") print(a)
8.合并集合
set1.update(set2)
a = {1,2,3} b = {("python")} a.update(b) print(a)
9.复制集合
set.copy()
a = {1,2,3} b = a.copy() print(b)
使用copy模块
import copy a = {1,2,3} b = copy.copy(a) print(b)