Python:字典&序列的操作

字典dict定义是用’{}'括起来,内容是键值对,其中key是唯一的,不允许重复,存储的必须是不可变类型。

d1 = {'name':'张三',(23,4):[32]}

字典中的key就是索引

d1 = {'name':'张三',(23,4):[32]}
print(d1['name'])

输出结果:张三

例一:

d1 = {'name':'张三',(23,4):[32]}
d1['python']=100
d1['name']='李四'
print(d1)

输出结果:

image.png

由例一结果看出,当对key值进行操作的时候,对不存在的key值进行的是新建键值对的操作,对已有key值进行的是修改操作。

例2:

d1 = {'name':'张三',(23,4):[32]}
d1.update({'sex':'male'})
d1.update({'name':'kaka'})
print(d1)

输出结果:

image.png 可以看出update()函数与例一的输出结果差不多,也是对不存在的key值进行的是新建键值对的操作,对已有key值进行的是修改操作。

查看/增加

字典中的操作一般是:get()和setdefault()

get()例3:

d1 = {'name': 'kaka', (23, 4): [32], 'sex': 'male'}
print(d1.get('name'))  #print(d1['name']的结果一致

输出结果:kaka

setdefaule()例4:

d1 = {'name': 'kaka', (23, 4): [32], 'sex': 'male'}
print(d1.setdefault('sex',100))
print(d1.setdefault('python',500))
print(d1.setdefault('java'))
print(d1)

输出结果:

image.png

以上是对setdefault()函数的运用,可以发现,当运用setdefault()函数的时候,如果是对存在的key值进行操作,就是查询的作用,即使是赋值也是无效的(给’sex’赋值为100,但结果依然是’male’);当对不存在的key值进行操作时,返回的是定义的值(‘python’不存在,所以返回定义值500);当对不存在的key值进行不赋值的操作,字典d1自动添加一对键值对,key值是’java’,value默认None。

注意:

dict1 = {'name':'张三','age':20,'gender':'男'}
dict1.update(masql=50)
print(dict1)

输出:

image.png

这里的update()也是新增,但是必须赋值,不然也会报错。

删除

在字典中删除的方法由pop()、popitem()、del、clear()

pop()

d1 = {'name': 'kaka', (23, 4): [32], 'sex': 'male'}
d1.pop('name')
print(d1)

输出:

image.png

popitem()→默认删除最后一对

d1 = {'name': 'kaka', (23, 4): [32], 'sex': 'male'}
d1.popitem()
print(d1)

输出:

image.png

del→不指定值,默认全删

d1 = {'name': 'kaka', (23, 4): [32], 'sex': 'male'}
del d1['name']
print(d1)

clear()→清空

d1 = {'name': 'kaka', (23, 4): [32], 'sex': 'male'}
d1.clear()
print(d1)

输出:{}

修改

索引赋值:key必须是存在的

update():key必须是存在的

d2 = {'name':'王五'}
d2.update({'name':'Lucy'})  #等于d2 ['name':'Lucy']
print(d2)

输出:{‘name’: ‘Lucy’}

items()→查看所有键值对,keys()→查看所有key值,values()→查看所有values

dict1 = {'name':'张三','age':20,'gender':'男'}
print(dict1.items())
print(dict1.keys())
print(dict1.values())

输出:

image.png

以上情况多用于搭配for循环使用,例如:

dict1 = {'name':'张三','age':20,'gender':'男'}
dict1.items()
for k,v in dict1.items():
    print('key:{},value:{}'.format(k,v))

输出:

image.png

序列操作:

运算符支持的容器类型
+(合并)str、list、tuple
运算符支持的容器类型
*(复制)str、list、tuple
运算符支持的容器类型
in(是否存在)str、list、tuple、dict、set
运算符支持的容器类型
not in(是否不存在)str、list、tuple、dict、set
print('123'*5)

输出:123123123123123

dict1 = {'name':'张三','age':20,'gender':'男'}
print('name' in dict1)

输出:True

序列

len():计算容器中的元素个数

del或者del():删除

max():返回容器中元素最大值

min():返回容器中元素最小值

range(start,end,step):生成从start到end的数字(不包括end),步长为step,供for循环使用

enumerate():用于将一个可遍历的数据对象(如字符串、元组或者列表)组合为一个索引序列,同时列出数据和数据下表,一般用于for循环

sum():序列求和

zip():合并序列

print(max('112df334'))
print(max([234,3,23,45,2]))
print(max(['234','3','23','45']))

输出:

image.png

字母数和数字大小的比较,是遵循ASCII码表来的,不清楚的同学,可以去百度看看ASCII码表。子母中A最小,Z最大,所有小写字母都比大写字母小。

enumerate()

for i in enumerate('helloword',10):
    print(i)

输出:

image.png

enumerate()中的第二位数字10,如果不写,默认从0开始编号。

print(sum([12,345,654,87]))

输出:1098

zip()

name = ['张三','李四','王五','赵六']
age=(45,32,29,54,62)
sex=['male','male','female','male']
result=zip(name,age,sex)
for i in result:
    print(i)

输出:

image.png

注意:由以上结果看出,zip()函数只取最少元素的数量

推导式

list1 = []
for i in range(1,11):
    list1.append(i)
print(list1)

结果:

image.png

列表推导式:

list2 = [i for i in range(1,11) if i%2==0]
print(list2)

结果:

image.png

由以上列表推导式中注意:先判断for循环,在判断条件,最后再输出结果。

---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值