引言
今天写帖子的时间有点早,主要今天确实没学啥,学习了元组,集合和字典。相比之下,他们很类似,和java中的数组,列表以及map集合很像很像。另外今天在网上找到爬虫组织,学习了基础爬虫,用requests库爬取mp3免费歌曲和MP4免费视频,这个我在最后面写吧,毕竟确实还没学到那,不如正题,今天学的是元组,集合和字典。
1.元组
元组和列表的区别
1、元组一旦创建不能被修改。
2、没有追加、删除、修改等操作。
3、在运行效率上,元组的运行效率比列表更高更快。
4、元组的由于不可被更改,它的代码具有保护性。
2.集合
特点
1、无序可变序列(元组) , [列表] , {字典} {集合}里面包含的元素都具有唯一性
2、集合里面的内容不可重复,可以进行增删改查。
3、集合里面只能存,不可变的数据类型。 数字、字符串、元组 只能添加这三种
集合的创建
1、set1 = set()
2、set1 = {1, 2, 3, 4}
集合的特性
1、无序性:集合没有索引
2、唯一性:去重复 集合里面不能添加列表
3、集合可以增删改查,所以集合可以改变,但是里面添加的元素不可变
集合增加
把 m 集合当中的元素添加到 s 中
s = {"a", "b", "c"} m = {"a1", "b1", "c2"} for i in m: s.add(i) print(s)
集合的更新
添加单个元素的时候使用add
批量添加元素:更新updata()
集合的删除
1、remove() 移除集合连存在的元素,如果元素不存在,则报错
2、discard()移除集合连存在的元素,如果元素不存在也不报错
集合 交集 并集 差集 对称差集
a = {1,2,3,4,5,6,7,8,9}
b = {1,3,5,7,9}
差集 a对b的差集
print(a - b) # a存在但是b不存在
a对b的交集
print(a & b)
print(s1.intersection(s2))
a和b的并集
print(a | b)
a和b的对称差集 并集减去交集
print(a ^ b)
a和b的对称差集
print((a-b) | (b-a))
集合和列表区别:
1、列表有序,集合无序
2、列表可重复,集合不能重复
3、列表可以存任何类型,集合只能存取不可变的数据类型
4、列表不能去交集并集,集合可以提取相同元素
字典
特点:
1、它是以键值对的形式存在 key - value:它可以存储任意类型的元素
2、无序且可变
3、定义字典的时候,{key:value , key:value , ....}
4、字典中的键:任意不可变的数据类型。value可以是任何类型
字典创建格式
1、d1 = {} #一个空字典
2、d2 = dict() #创建一个空字典
3、key 不可以重复,value可以重复
字典的添加
1、字典的添加 根据 dic1[key] = dic1[value]
2、直接更新 d3.update({"eye" : "1.5"})
字典删除
d3 = {"name":"Ray" , "age":18 , "sex":["女"]}
1、通过删除键来删除键值对:del d3["eye"]
2、通过自身键来删除该键值对,这个方法具有返回值:返回value的值 ddd = d3.pop("eye")
3、d3.clear() 清空字典
4、del d3 :直接删除该字典
字典修改
d3["height"] = "2.0" , 直接将value赋值给key
字典的查询
print(d3.keys()) # 打印全部的键
print(d3.values()) # 打印里面全部的值
print(d3.items()) # 打印里面所有的键值对
爬虫
以爬取网易云免费音乐为例
1.抓取网址,打开f12开发者工具
2.下载requests库包
终端上输入命令 pip install requests
3.爬取数据,转换为二进制文件,在找到对应文件写入,代码如下
# 导包
import requests
#爬取的链接对象
url = "https://webfs.hw.kugou.com/202407112128/dc46ea0fb2263e15484ed760d5671b83/v2/6a350e487263733359e7f2b64bd974ac/part/0/960127/G335/M06/64/E0/clip_L5UEAGTWYQ6Abc24AEQsOeRD3aI642.mp3"
# url = "https://m701.music.126.net/20240711214716/ec4e238a4a11ccc4e1bbddae6996141a/jdyyaac/obj/w5rDlsOJwrLDjj7CmsOj/44436913695/d844/3856/e75e/e3040df6368f422ebaf7379cfdf9f19d.m4a"
#发送网络请求后得到的二进制文件
message = requests.get(url).content
# 打开mp3文件,如果没有就创建mp3文件
filemp3 = open("薛之谦酷狗.mp3","wb")
# 将二进制文件写入mp3文件
filemp3.write(message)
最终结果:
结语
这两天确实学的太快了,放慢点速度,明天的话就是背背这3天的帖子,查缺补漏。今天写完帖子才22:47,可以打一把游戏了,哈哈哈。今天也是要做Python大神的一天,兄弟们,mai起!