灿灿灿的第五次python记录——集合的相关操作


嗯?你问我上周为什么没写?啊哈为期两天的运动会让人劳累。开头恭喜学院恭喜自己一波得奖啦!(啪/:好好说话)那么这周的记录开始啦

一、上期回顾

名称元组字典
定义元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号“()”中,而不是方括号中。定义字典时,每个元素的键和值用冒号分隔,元素之间用逗号分隔,所有的元素放在一对大括号“{}”中。
特点元组和列表类似,但属于不可变序列,元素一旦创建,用任何方法都不可以修改其元素。字典是包含若干“键:值”的无序、可变序列。
创建与删除1.使用“=”将一个元组赋值给变量,就可以创建一个元组变量。2.如果要创建只包含一个元素的元组,只把元素放在括号里是不行的,还需要在元素后面加一个逗号“,”,创建包含多个元素的元组没有这个限制。3.可以使用tuple()函数将列表、字符串、字典、集合、map对象等其他类型可迭代对象转换为元组。1.使用‘’=”将一个字典赋值给一个变量即可创建一个字典变量。2.使用dict利用已有数据创建字典。3.使用dict根据给定的键、值创建字典。4.以给定内容为键,创建值为空的字典

二、集合

2.1 集合的定义

·集合是无序、可变序列,使用一对大括号界定,元素不可重复,同一个集合中每个元素都是唯一的。
·集合中只能包含数字、字符串、元组等不可变类型(或者说可哈希)的数据,而不能包含列表、字典、集合等可变类型的数据。

2.2 集合的创建与删除

1.使用set将其他类型数据转换为集合

a_set = set(range(8,14))
print(a_set)
输出:{8, 9, 10, 11, 12, 13}

set还有自动去重功能,如:

b_set = set([0, 1, 2, 3, 0, 1, 2, 3, 7, 8])   #自动去除重复
print(b_set)
输出:{0, 1, 2, 3, 7, 8}

2.当不再使用某个集合时,可以使用del命令删除整个集合。
3.集合对象的pop()方法弹出并删除其中一个元素。
如:

a = {1, 4, 2, 3}               
a.pop()
输出:1

4.remove()方法直接删除指定元素。
如:

a.remove(3)
print(a)
输出:24

5.clear()方法清空集合

2.3 集合操作

2.3.1 运算

Python集合支持交集、并集、差集以及子集测试等运算。如

a_set = set([8, 9, 10, 11, 12, 13])
b_set = {0, 1, 2, 3, 7, 8}

1.并集(两种方法):

a_set | b_set                             #并集
a_set.union(b_set)                        #并集
输出:{0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13}

2.交集(两种方法):

a_set & b_set                             #交集
a_set.intersection(b_set)                 #交集
输出:{8}

3.差集(两种方法):

a_set.difference(b_set)                   #差集
a_set - b_set
输出:{9, 10, 11, 12, 13}

4.对称差集:即去除交集

a_set.symmetric_difference(b_set)  #对称差集
a_set ^ b_set
输出:{0, 1, 2, 3, 7, 9, 10, 11, 12, 13}

2.3.2 关系

集合还包含关系测试

x = {1, 2, 3}
y = {1, 2, 5}
z = {1, 2, 3, 4}
x < y                      #比较集合大小/包含关系
输出:False
x < z                                #真子集
输出:True
y < z
输出:False
{1, 2, 3} <= {1, 2, 3}               #子集
输出:True

2.3.3 集合操作

使用集合快速提取序列中单一元素

import random
listRandom = [random.choice(range(10000)) for i in range(100)]
noRepeat = []
for i in listRandom :
	  if i not in noRepeat :
		 noRepeat.append(i)
len(listRandom)
len(noRepeat)

或者直接:

newSet = set(listRandom)

三、常用内置函数

内置函数filter()将一个单参数函数作用到一个序列上,返回该序列中使得该函数返回值为True的那些元素组成的filter对象,如果指定函数为None,则返回序列中等价于True的元素。

>>> seq = ['foo', 'x41', '?!', '***']
>>> def func(x):
    return x.isalnum()                  #测试是否为字母或数字

>>> filter(func, seq)                   #返回filter对象
输出<filter object at 0x000000000305D898>
>>> list(filter(func, seq))             #把filter对象转换为列表
输出:['foo', 'x41']
>>> list(filter(str.isalnum, seq))      #等价的用法
输出:['foo', 'x41']

四、总结

本周内容少,但是重要喔!这周也是“有干劲”的学习周呢!
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值