元组:
本质:与list相同是一个有序的集合,一旦初始化,则不能修改
使用元组的时候,我们使用()
元组的创建:
当元组中只有一个元素的时候,我们需要在这个元素后面添加一个逗号,来消除歧义。
tuple1 = (元素1,元素2,…)
tuple2 = 元素1,元素2,…
注意:小括号可以省略,当多个元素使用逗号隔开的时候,默认他就是一个元组。
元组元素的访问:
tuple1[index]
index取值范围[0,len(tuple1))
可以为负,-1倒数第一个
修改元组
在定义tuple之后,它每个元素的指向是不发生变化的。
元组本身是不能修改的,但是元组中可以存放可变元素,可变元素是可以被修改的
是通过可变元素进而修改我们元组。
删除元组
del 元组名
tuple1 = (1,2,3,[1,2])
tuple2 = ()
tuple3 = tuple()
tuple4 = 1,2
tuple5 = 1,
tuple6 = (1,)
del tuple1
print(tuple1[0])
print(tuple1[-1])
tuple1[-1][-1] = “hello”
print(tuple1)
print(type(tuple1))
print(type(tuple2))
print(type(tuple3))
print(type(tuple4))
print(type(tuple5))
print(type(tuple6))
1.元组的组合
tuple3 = tuple1+tuple2
2.元组的重复
tuple3 = tuple1*n
3.判断元素是否在元组中
元素 in 元组
若存在返回True,否则返回False
4.元组的截取
tuple1[start:stop:step]
start:默认0
stop:默认len(tuple1)
step:默认1
tuple()
可以将其它序列转为元组
tuple1 = (1,2,3)
tuple2 = (“hello”,“good”)
print(tuple1+tuple2)
print(tuple2*3)
print(tuple1[::-1])
print(tuple1[:])
print(tuple(“hello”))
print(tuple([1,2,33,4]))
print(tuple({1,2,33,4}))
字典:
dict字典本质是一个无序的集合。
它也是我们存储数据的一种方式,使用key-value的方式来进行存储的。
在其他语言中,它也被称为map集合。
优点:查找速度非常快。
特性:
1.key必须唯一
2.key必须是不可变的
不可变的数据类型:字符串,number,bool,None,tuple
创建字典:
字典名 = {key1:value1,key2:value2,…}
key与value使用":“来连接
key与key使用”,"隔开。
1.字典的访问:
dict1[key]
注意:当key不存在的时候,则报错。
dict1.get(key)
当key不存在的时候返回None,不报错。
2.添加元素/修改元素
当key不存在的时候为添加,当key存在的时候则为修改
dict1[key] = value
3.删除元素
dict1.pop(key)
功能:将指定的key以及对应value一起移除,并且将value返回。
4.字典的遍历
for x in dict1:
#默认遍历key
for k in dict1.keys():
#遍历key
for v in dict1.values():
#遍历值
for k,v in dict1.items()
#同时遍历键与值
dict1 = {}
print(dict1)
print(type(dict1))
dict2 = dict()
print(dict2)
print(type(dict2))
dict3 = {1:1,2:2,2:3}
print(dict3)
dict1 = {“lili”:90,“xiaoming”:80,“nanna”:89,“leilei”:78}
print(dict1[“lili”])
print(dict1[“lili2”])
print(dict1.get(“lili”))
print(dict1.get(“lili2”))
dict1[“xiaohua”] = 80
print(dict1)
dict1[“xiaohua”] = 88
print(dict1)
print(dict1.pop(“lili”))
print(dict1)
for x in dict1:
print(x,dict1[x])
for x in dict1.keys():
print(x)
for v in dict1.values():
print(v)
for k,v in dict1.items():
print(k,v)
Python中集成了许多关于字典的方法,下面我们来列举一下:
clear()#清空字典里的数据;copy()#拷贝(浅拷贝)一个字典里的数据;fromkeys()#使用给定的键建立字典,对应的值默认为“None”;get(key, default=None)#访问字典中对应的键里的值,如不存在该键返回default的值;items()#获取字典键值对数据,以列表形式返回;keys()#获取字典键的数据,以列表形式返回;values()#获取字典值的数据,以列表形式返回;setdefault(key, default=None)#和get方法类似,不同之处在于,如不存在该键,则添加该键到字典中并将值设置为default的值;update(dict2)#把字典dict2的数据(键值对)更新到另一个字典中;
字典与列表的区别:
1.存储方式不同
list只存储value,dict存储key与value
因此dict要比list要消耗内存,在内存中进行存储的时候,list排列是紧密的,而dict不是
2.查询以及插入速度,dict比较快
若数据量不大,则两者区别不大,若数据量比较大的情况下,dict的查询
的速度要远胜于list。
对歌词进行切片处理,
将时间作为key,歌词作为value存储到字典中。
key是浮点数【将时间转为秒】
musicLrc =’’’
[00:00.00]小苹果
[00:01.50]《老男孩猛龙过江》宣传曲
[00:05.00]词曲:王太利
[00:07.00]演唱:筷子兄弟
[00:09.30]
[00:16.80]我种下一颗种子 终于长出了果实
[00:20.71]今天是个伟大日子
[00:24.46]摘下星星送给你 拽下月亮送给你
[00:28.36]让太阳每天为你升起
[00:32.24]变成蜡烛燃烧自己 只为照亮你
[00:36.01]把我一切都献给你 只要你欢喜
[00:39.90]你让我每个明天都 变得有意义
#去除前后空格
musicLrc = m
usicLrc.strip()
按行分割
lineList= musicLrc.splitlines()
创建一个空字典,存放时间与歌词
musicdict = {}
print(lineList)
循环遍历
for line in lineList:
# print(line)
# 将歌词与时间切分开
strList = line.split("]")
# 获取歌词
# print(strList[-1])
# 获取时间,并且去除时间前面的"[",以":“进行切分
timeList=strList[0][1:].split(”?
# print(timeList)
# 将时间转为float类型
times = float(timeList[0])*60 + float(timeList[-1])
print(times)
# 将对应的时间以及歌词存放到字典中
musicdict[times] = strList[-1]
print(musicdict)