集合的特点
不支持重复元素(去重)
而且顺序不能保证(乱序,无下标索引)
允许被修改
小总结
列表[ ]
元祖()
字符串" "
集合 { }
语法
# 语法
{"sasa", "kaka", "papa", "enen"} # 字面量
set_1 = {"sasa", "kaka", "papa", "enen"} # 用变量接收
set_empty = set() # 空集合
常用操作
因为集合是乱序的,所以下标索引不能使用。
添加
集合名称.add( 加入的元素)
a = {"aa", "jd", "kk", "od", "rd", "aa"}
print(a.add("黑的"))
print(a)
'''输出
None
{'黑的', 'rd', 'aa', 'od', 'kk', 'jd'} '''
add函数没有返回值,只会给集合添加元素,所以直接print(a.add("黑的")),会输出None。
移除
集合名称.remove( 移除的元素)
a = {"aa", "jd", "kk", "od", "rd", "aa"}
print(a.remove("kk"))
print(a)
'''输出
None
{'aa', 'rd', 'jd', 'od'}
'''
同样没有返回值
a = {"aa", "jd", "kk", "od", "rd", "aa"}
print(a.pop())
print(a)
'''输出
jd
{'kk', 'rd', 'aa', 'od'}
'''
pop的删去,在列表中可以输入下标索引来指定移除,但是集合没有下标索引的功能,所以集合会随机移除一个元素,不用填写下标。
list_1 = ["dji", "do", "oas", "mdasl"] # 列表
list_1.pop(0)
print(list_1)
set_1 = {"dji", "do", "oas", "mdasl"} # 集合
print(set_1.pop())
print(set_1)
'''输出
['do', 'oas', 'mdasl']
oas
{'dji', 'mdasl', 'do'}
'''
清空
集合名称.clear()
修改
差集和交集
取两个集合的差集:集合1.difference(集合2),得到集合1有集合2没有的元素的集合
取交集:集合1&集合2,得到两个集合都有的元素
这些操作不会影响他们原本的集合,而是得到了新的集合
set_1 = {"dji", "do", "oas", "mdasl"}
set_2 = {"dji", "ad", "aa", "s", "oas"}
print(set_1 & set_2) # 交集
print(set_1.difference(set_2)) #差集,返回差集
'''输出
{'oas', 'dji'}
{'mdasl', 'do'}
'''
消除差集
集合1.difference_update(集合2),消除了集合1里与集合2相同的元素,改变了集合1,没有改变集合2
set_3 = {1, 2, 3, 4, 5}
set_4 = {1, 9, 40, 6, 2}
set_3.difference_update(set_4)
print(set_3)
print(set_4)
'''输出
{3, 4, 5} set_3
{1, 2, 6, 40, 9} set_4
'''
合并集合
集合1.union(集合2)
集合1和集合2不变,返回一个新集合,包括集合1、2的所有元素(去重)
set_3 = {1, 2, 3, 4, 5}
set_4 = {1, 9, 40, 6, 2}
print(set_3.union(set_4)) # 可以设一个变量接收返回的集合
'''输出
{1, 2, 3, 4, 5, 6, 40, 9}
'''
统计集合元素个数
len(集合)
set_3 = {1, 2, 3, 4, 5}
print(set_num)
'''输出
5
'''
遍历
集合没有下标索引,不能用while,for可以
set_3 = {1, 2, 3, 4, 5}
for x in set_3:
print(x)
'''输出
1
2
3
4
5
'''
标签:aa,容器,set,dji,笔记,print,oas,集合
From: https://blog.csdn.net/2401_86567391/article/details/142694566