python字典是序列吗_python 基础知识第8讲:序列之字典

1.字典

字典属于一个新的数据结构,称之为映射

字典也称之为 键值对(key - value)结构 ,每个键值对称之为一项(item)

作用:和列表相似,都是用来存储对象的容器

列表的存储性能很好,但是读取的性能会差

字典当中每一个元素都有一个名字,通过这个唯一的名字,可以快速的查找自己想要的元素,字典当中的key值相当于目录一样,value就是相应的内容

1.1字典的创建

语法: {key:value,key:value,key:value}

d = {'name':'钢铁侠','age':30,'sex':'男'}

print(d,type(d)) # dict

注:

字典的键(key)可以是任意不可变对象(如 int,str,bool,tuple ...等 )

字典的值(value)可以是任意对象

字典当中的键是不可以重复的,如果重复,后面的会替换前面的,

如下代码:

d = {'name':'钢铁侠','age':30,'sex':'男','name':'蜘蛛侠'}

1.2获取字典当中的值 根据键来获取

语法 d[key]

print(d['name']) #默认通过这种方式来获取

但是有的情况下是可以不用加 ''号,就是将key 赋值给一个变量,然后再正常调取的时候,key的位置填写这个变量

x = 'age'

print(d[x])

通过 get()方法获取,此种方法,可以实现当输入的键不存在时,程序不会报错,而是返回 None

print(d.get('hello')) #程序返回None不会像上面那样程序报错

get(key[, default])

这个里面我们可以设定一个当程序没有相应的key相对应值的时候,返回一个我们自定义 的信息,也就是default的值我们可以自己写

1.3字典的值的使用

通过官方文档来获取字典的一些使用方法

1.使用 dict()函数来创建字典

d = dict(name='蜘蛛侠',age=20,sex='男')

2.通过双值子序列转换成为字典

双值序列,序列当中只有2个值 [1,2] ('b',6) 'de'

子序列 如果序列当中的元素也是序列,那么我们就称之为这个元素的子序列,例如: [(2,3),(7,8)]

d = dict([('name','钢铁侠'),('age',18)]) #双值序列,里面可以用元组的形式来形成,key和value

3.获取字典当中的长度

len()

print(len(d))

4.in 和 not in

in 检查字典当中是否包含指定的键

not in 检查字典当中是否不包含指定的键

print('name' in d )

5 修改字典

d[key] = value

如果Key值存在覆盖,不存在就添加

6 setdefault(key[, default])

就是向字典中添加key-value

如果Key已经存在字典中,则返回key的值,不会对字典做任何操作

如果Key不存在,则向字典中添加这个Key,并设置value

result= d.setdefault('name','葫芦娃')

result= d.setdefault('python','葫芦娃')

7 update() 添加

将其他字典当中的key-value 添加到当前字典当中

如果有重复的key,则后边的会替换到前面的

d = {'a':1,'b':2,'c':3}

d2 = {'d':4,'e':5,'f':6}

d.update(d2)

8 del 删除

del d['a']

popitem()

随机删除字典中的一个键值对,一般都会删除最后一个键值对

d.popitem() #{'c': 3, 'd': 4, 'e': 5}

删除之后他会将删除的key-value 作为返回值返回

返回值是一个元组,元组中有2个元素 第一个是删除的Key 第二个是删除的value

result = d.popitem() # {'c': 3, 'd': 4}

print(result)

10 clear() 清空字典

d.clear()

11 copy() 复制

该方法是用来对字典进行一个㳀复制

复制以后的对象 和原对象就是对立 修改一个不会影响第二个

d = {'a':1,'b':2,'c':3}

d2 =d.copy()

d['a'] = 88

print(d,d2)

㳀复制会简单复制对象内部的值,如果这值也是一个可变对象,这个可变对象是不会被复制的,也就是一个字典当中有一个子字典,复制的话只会复制外层的,内层的不会被复制,通过复制的字典修改内层字典中的元素的值,原来字典内层字典当中的值也会被改

d = {'a':{'name':'钢铁侠','age':30},'b':2,'c':3}

d2 =d.copy()

d2['a']['name']='zzx'

print(d,d2)

#{'a': {'name': 'zzx', 'age': 30}, 'b': 2, 'c': 3}

#{'a': {'name': 'zzx', 'age': 30}, 'b': 8, 'c': 3}

12 字典的遍历

keys()

# 通过遍历keys()来获取所有的键

d = {'name':'钢铁侠','age':30,'sex':'男'}

for k in d.keys():

print(k,d[k])

values()

基本不用,因为看不到key

for v in d.values():

print(v)

items()

该方法会返回字典中所有的项

它会返回一个序列,序列包含有双值子序列

双值分别是 字典中的 key 和 value

print(d.items())

for k,v in d.items():

print(k,'=',v)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值