集合的定义
一堆确定的无序列的唯一的数据
集合的特征
内部无序,不能索引和切片元素有唯一性,可以用来排除重复数据内部之只能放置可哈希数据,即不可改变的数据结构,如str、tuple等
集合的创建
s
= set()
print(s
)
print(type(s
))
s2
= {9,8,7,6,5,4,3,2,1}
print(s2
)
print(type(s2
))
s3
= {}
print(s3
)
print(type(s3
))
'''
set()
<class 'set'>
{1, 2, 3, 4, 5, 6, 7, 8, 9}
<class 'set'>
{}
<class 'dict'>
'''
集合序列操作
in,not in
集合的遍历
s
= {888,66,8,7,"fsdf","fsdf,ds"}
for i
in s
:
print(i
, end
=" ")
print()
s
= {(44,6),(55,7),(88,8)}
for k
,v
in s
:
print(k
, "---", v
)
for i
in s
:
print(i
)
'''
fsdf,ds 66 7 8 fsdf 888
55 --- 7
44 --- 6
88 --- 8
(55, 7)
(44, 6)
(88, 8)
'''
集合的内涵
s
= {i
for i
in range(1,10)}
print(s
)
ss
= {i
for i
in s
if i
% 2 == 0}
print(ss
)
s1
= {1,2,3}
s2
= {"hh","xx","qq"}
s3
= {m
* n
for m
in s1
for n
in s2
}
s4
= {m
* n
for m
in s1
for n
in s2
if m
== 2}
print(s3
)
print(s4
)
'''
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{8, 2, 4, 6}
{'xxxxxx', 'hhhh', 'xx', 'hhhhhh', 'xxxx', 'qqqq', 'hh', 'qq', 'qqqqqq'}
{'xxxx', 'hhhh', 'qqqq'}
'''
集合/关于集合的函数
len、max、min、clear、copy与前面所讲用法相同remove:删除指定的值,会报错 discard:删除集合中指定的值,不会报错
s
= {1,2,3,4,5,67}
s
.discard
(999)
print(s
)
s
.remove
(999)
print(s
)
'''
{1, 2, 3, 4, 5, 67}
KeyError
'''
pop 随机移除一个元素
s
= {1,2,3,4,5,67}
d
= s
.pop
()
print(d
)
print(s
)
'''
1
{2, 3, 4, 5, 67}
'''
集合的运算
a
= {1,2,3,4,5,67}
b
= {4,5,67}
s1
= a
.intersection
(b
)
print(s1
)
s2
= a
.difference
(b
)
print(s2
)
s3
= a
.union
(b
)
print(s3
)
s4
= a
.issubset
(b
)
print(s4
)
s5
= a
.issuperset
(b
)
print(s5
)
'''
{67, 4, 5}
{1, 2, 3}
{1, 2, 3, 4, 5, 67}
False
True
'''
s_1
= a
| b
print(s_1
)
s_2
= a
- b
print(s_2
)
s_3
= a
& b
print(s_3
)
'''
{1, 2, 3, 4, 5, 67}
{1, 2, 3}
{67, 4, 5}
'''
frozen set:冰冻集合
一种特殊集合,不可以进行任何修改的集合
s
= frozenset()
print(s
)
print(type(s
))
'''
frozenset()
<class 'frozenset'>
'''