Python基础教程

012_Python集合类型set

Python集合类型set

Python集合类型set的理解

集合(set)是一个无序的不重复元素序列。

集合是字典dict的特殊情况,即字典每个元素的键与值完全一样。

集合也用大括号{}来表示,只是没有key,value,而只有key。

能做字典key的数据类型才能做set的元素,比如tuple能做key,list不能做key。

创建一个空集合必须使用set()函数,而不是{},因为{}是用来创建一个空字典。

myset={"number","name","score",12, 85.5,(1,2,3)}
print(type(myset))
print(myset)

运行结果

第一次

C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
<class 'set'>
{12, (1, 2, 3), 'number', 'score', 85.5, 'name'}

Process finished with exit code 0

第二次(两次运行myset中的元素顺序不一致)

C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
<class 'set'>
{'score', 12, (1, 2, 3), 'number', 'name', 85.5}

Process finished with exit code 0

集合set的创建与增删改查

集合set的创建。用大括号{}和逗号",",或用set()函数。创建空集合只能用set()函数。

集合set的添加。使用集合set对象的add()方法。也可以通过set()函数把list或tuple转成set对象。

集合set的删除。可以使用集合set对象的remove()、pop()、clear()、discard()。也可以用del语句删除整体。

集合set的访问(查)。由于集合中的元素是无序的,因此无法向列表那样使用下标访问元素。Python 中,访问集合元素最常用的方法是使用循环结构,将集合中的数据逐一读取出来(就是遍历)。

集合set的修改。很少用。一般直接添加set元素,如果以前添加过,则会被覆盖,如果没有添加过则可以添加进去。set元素永远只出现一次(不重复)。

# 使用大括号创建set对象
myset={"number","name","score",12, 85.5,(1,2,3)}
print(type(myset))      # <class 'set'>
print(myset)            # {'number', 12, 'score', (1, 2, 3), 85.5, 'name'}

# 使用set()函数创建set空对象
myset=set()
# 添加set元素
myset.add("number")
myset.add(12)
myset.add(85.5)
print(type(myset))      # <class 'set'>
print(myset)            # {12, 85.5, 'number'}

mylist=[1,2,3,4,2,2,2]
print(mylist)           # [1, 2, 3, 4, 2, 2, 2]
# 把list转为set
myset=set(mylist)
print(myset)            # {1, 2, 3, 4}

# 删除set元素
myset.remove(3)
print(myset)            # {1, 2, 4}

集合set的遍历

myset={"number","name","score",12, 85.5,(1,2,3)}
# 遍历set
for imm in myset:
    print(imm)

运行结果

C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
score
12
number
(1, 2, 3)
name
85.5

Process finished with exit code 0

集合set的运算

集合可以进行集合运算,比如求交集、并集、差集。

list1=[1,2,3,4]
list2=[3,4,5,6,7,8]
set1=set(list1)
print(set1)                        # {1, 2, 3, 4}
set2=set(list2)
print(set2)                        # {3, 4, 5, 6, 7, 8}
# 交集
set_inter=set1.intersection(set2)
print(set_inter)                   # {3, 4}
# 并集
set_union=set1.union(set2)
print(set_union)                   # {1, 2, 3, 4, 5, 6, 7, 8}
# 差集,在set1中找差集
set_diff1=set1.difference(set2)
print(set_diff1)                   # {1, 2}
# 差集,在set2中找差集
set_diff2=set2.difference(set1)
print(set_diff2)                   # {8, 5, 6, 7}

集合set的方法

add():为集合添加元素

clear():移除集合中的所有元素

copy():拷贝一个集合

difference():返回多个集合的差集

difference_update():移除集合中的元素,该元素在指定的集合也存在。

discard():删除集合中指定的元素

intersection():返回集合的交集

intersection_update():返回集合的交集

isdisjoint():判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False

issubset():判断指定集合是否为该方法参数集合的子集

issuperset():判断该方法的参数集合是否为指定集合的子集

pop():随机移除元素

remove():移除指定元素

symmetric_difference():返回两个集合中不重复的元素集合

symmetric_difference_update():移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

union():返回两个集合的并集

update():给集合添加元素

这篇文章对您有用吗?

我们要如何帮助您?