Python一天一颗糖(十一)元组和字典

一. Tuple(元组):与列表类似,但是元素不能够修改

1.形式:tuple = ()

# 元组与表达式的区分:当元组中只有一个元素的时候,需要在元素后加上英文逗号,以区分自身是元组,而不是单纯的表达式。

不建议的形式,简写形式如下:

格式类型依然是tuple,不带括号编辑的时候,仍然默认是元组。

2.基本操作:增删改查

增:元组不接受增加,一般是使用’连接‘来完成操作 

# 'tuple' object does not support item assignment,元组不吃这一套

# 如果采用连接的方式,则可以形似增加,不过要开创一个新的空间出来

删:不是删除元组中的元素,而是清理掉该元组

 改:修改元组浅层的数据是会报错的,但是如果元组中包含的元素是可变数据类型,则可以。

# 元组下的内容得到了修改

3.强制类型转化:tuple()

 # 完成了强制转换

 二. dict字典:无序,键值对(键必须使用不可变类型,且唯一)

 1.定义字典:dict = {'a':1,'b':2,'c':3,'d':[1,2]},字典的创建以及访问如下图

# 用基本的访问方式,如果是不存在的键会报错

# 如果采用get模式,对于不存在的键,则不会报错,而是返回None值或者你定义用来替代默认返回值None的值。

2.通过列表创建字典

A. 调用fromkeys模式,利用列表作为键值,用同样的数据作为值,生成字典。 

3.增删改查

增:

 改:

删:

del模式

clear模式:清空字典内容

pop模式:通过键值,弹出相应的’值‘(相当于删除),不过可以获取被删的值。

# 该模式下,如果键值是不存在的,那么会报错,设定默认值,则可以避免报错,还可以获得一个返回值。使得程序更加健壮。

popitem模式:弹出最后一个值,同时获得的是’键值对‘,元组类型

# 如果列表为空会报错  

4.字典生成式:

items=['Fruits','Books','Others']
prices=[96,78,85]
 
d={item:price  for item,price in zip(items,prices)}
print(d) #想要结果是大写可以在item.后加upper():
 
#结果1
{'Fruits': 96, 'Books': 78, 'Others': 85}
#结果2
{'FRUITS': 96, 'BOOKS': 78, 'OTHERS': 85}

5.字典视图:简单来说是对字典内容的获取——三个模式:key()-获取字典的键值;values()-获取字典的值;items()-获取字典中所有的键和值

# 获取字典中所有的键值,且类型为dict_keys

# 获取字典中所有的值,数据类型为dict_values

# 获取字典中的键值对,类型为dict_items,同时再将其转化为列表,列表中又将键值对作为元组的形式存储。

思考:为什么要使用字典视图?

6.字典的遍历和获取值

 7.字典的特点

A.字典中的所有元素都是一个key-value对,key不允许重复,value可以重复

B.字典中的元素是无序的——>无法在指定的位置上插入元素

C.字典中的key必须是不可变对象——>比如整数,字符串是不可变对象;列表是可变对象

D.字典也可以根据需要动态地伸缩——>随着元素的增加而增加,随着元素的减少而减少

E.字典会浪费较大的内存,是一种使用空间换时间的数据结构

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值