嗯?你问我上周为什么没写?啊哈为期两天的运动会让人劳累。开头恭喜学院恭喜自己一波得奖啦!(啪/:好好说话)那么这周的记录开始啦
一、上期回顾
名称 | 元组 | 字典 |
---|---|---|
定义 | 元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号“()”中,而不是方括号中。 | 定义字典时,每个元素的键和值用冒号分隔,元素之间用逗号分隔,所有的元素放在一对大括号“{}”中。 |
特点 | 元组和列表类似,但属于不可变序列,元素一旦创建,用任何方法都不可以修改其元素。 | 字典是包含若干“键:值”的无序、可变序列。 |
创建与删除 | 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)
输出:2,4
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']
四、总结
本周内容少,但是重要喔!这周也是“有干劲”的学习周呢!