Python基础语法05 元组与字典

本文介绍了Python中的元组和字典基础。元组是一个不可变的有序集合,可以通过索引来访问元素,虽然元组本身不可变,但其中的可变元素可以修改。字典是无序的键值对集合,具有快速查找特性,键必须唯一且不可变。文中还展示了元组和字典的创建、访问、修改和删除操作,并提供了歌词处理的例子,将歌词时间与内容存储到字典中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

元组:
本质:与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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值