@[枭]
Python第五课
今天讲解了Python的
集合
①性质
无序+可变
放在{ }中
自动去重,其中的元素唯一
因为无序,所以说不可用切片操作或序列来返回值
集合和字典的唯一区别是,集合没有键值对的配对
②创建删除
创建集合可以直接使用a={3,5}
如遇需要进行转换成集合形式的,需要用到set()函数
set()
创建空集合为x=set()
将列表转换为集合的代码示例如下:
>>>b=set([0,1,2,3,0,1,2,3,7,8])
>>>b
{
0,1,2,3,7,8} #自动去重
将集合删除可以直接使用del()函数,这是删除整个集合
③元素增删
元素增加可以使用如下示例方法
这是集合的元素合并
>>>s={
1,2,3}
>>>t={
4,5,6}
>>>s.update(t)
>>>s
{
1,2,3,4,5,6}
这是集合的元素增加
>>>s={
1,2,3}
>>>s.add(4)
>>>s
{
1,2,3,4}
这是集合的元素删除
>>>s={
1,2,3,4,5,6}
>>>s.pop() #在这里pop()方法删除的是随机一个元素
1
>>>s.remove(2)
>>>s.discard(3) #即使没有这个元素也不会报错
>>>s
{
4,5,6} #在这里是指定删除一个元素
④交并差对称差子集运算
先声明a和b两个集合
>>>a={
8,9,10,11,12,13}
>>>b={
0,1,2,3,7,8}
交集的代码例子如下
>>>a.intersection(b)#方法一
>>>a&b#方法二
{
8}
并集的代码例子如下
>>>a.union(b)
>>>a|b
{
0,1,2,3,7,8,9,10,11,12,13}
差集的代码例子如下
>>>a.difference(b)
>>>a-b
{
9,10,11,12,13}
对称差(两个都有的元素就不输出)的代码例子如下
>>>a^b
{
0,1,2,3,7,9,10,11,12,13}
子集与真子集的代码例子如下
>>>a<b #比较x是否为y的子集
False
⑤过滤操作
使用过滤操作一个重要的函数是
filter(f,seq)
filter是对象,如果需要输出的话需要转换形式
e.g.
>>>seq=['foo','x41','?!','***']
>>>def func(x):
return x.isalnum() #判断x是否为字母/数字构成,真保留假过滤
>>>list(filter(func,seq))
['foo','x41']