python基础--字典

字典是一种新的数据结构,称之为映射(mapping)
字典的表显形式:dict
字典的作用是用来存储对象的容器
        列表存储数据性能很好,但是查询数据性能很差
        字典中每一个元素都有唯一的一个名字,通过名字可以快速查找到指定的元素
        唯一的名称称之为键(key),通过key可以查询到value,称之为值(value)
        所以字典我们称之为键值对
        每个字典可以有多个键值对,每一个键值对称之为项(item)

创建字典

1、使用‘{}’来创建字典
语法:{key:value,key:value…}

d={'name':'艾伦','age':18}

2、dict()函数

b=dict(name='艾伦',age=18)
print(b)

在字典中键和值可以是哪些内容?
值可以是任意对象
键可以是任意不可变的对象(int,str,bool,tuple…)
:字典中的键是不能重复的,若出现重复后面的会替换前面的

d=dict([('name','阿伦'),('age',18)])
print(d)

通过上面代码可以看出dict()函数可以把一个包含双值子序列转换成字典
:双值序列:序列中只有两个值。例:[2,3],(1,2),‘xc’
       子序列:如果序列当中的元素也是序列,那么称之这个元素为子序列。例:[(1,3)]

字典当中键是不能重复的,若出现重复,后面的会替换前面的

a={'name':'阿伦','age':18,'name':'阿三'}
print(a)

获取字典里的值

语法:d[key]—key要用引号引起来

a={'name':'阿伦','age':18}
print(a['name'])

get()获取字典里的值
语法:d.get(‘key’)

a={'name':'阿伦','age':18}
a.get('name')

使用get()函数获取字典当中的值时,当获取的键不存在时会返回none;也可以指定一个默认值,作为第二个参数,当获取不到这个键的值时返回该默认值

a={'name':'阿伦','age':18}
a.get('adress','字典中不存在这个键')

修改字典

语法:d[key]=value

a={'name':'阿伦','age':18,}
a['name']='阿三'

当修改时,键存在覆盖原来的值,键不存在时就会在字典后面新增一个键值对

a={'name':'阿伦','age':18,}
a['address']='chengdu'

setdefault(key[,default])可以用来向字典当中添加key-value(键值对)

a={'name':'阿伦','age':18,}
a.setdefault('name','阿三')
a.setdefault('phone',13212312312)
print (a)

通过上面代码可以看出,通过setdefault()函数想字典中添加键值对时,若key已经存在,则返回key的值,不对字典做任何操作;若key不存在时,则向字典当中添加这个key并设置value

update()函数
该函数能将其他字典中的key-value添加到当前的字典当中

a={'a':1,'b':2,'c':3}
b={'d':4,'e':5,'f':6}
a.update(b)
print(a)

删除

使用del()函数
语法:d.del[key]

a={'a':1,'b':2,'c':3}
a.del('a')

popitem()函数,随机删除字典当中的一个键值对,一般情况都是删除最后一个键值对
删除之后它会将key-value作为返回值

a={'a':1,'b':2,'c':3}
b=a.popitem()
print(b)

pop()函数
语法:d.pop(key[default])

a={'a':1,'b':2,'c':3}
print(a.pop('a'))#删除存在的键
print(a.pop('d','字典中不存在这个键'))#删除不存在的键

pop()函数是根据key来删除字典当中的键值对,并返回key对应的value
若删除不存在的key,抛出异常(keyerror);如果指定默认值,删除不存在的key时就返回默认值
**clear()**清空字典

a={'a':1,'b':2,'c':3}
a.clear()
print(a)

浅拷贝

只会复制字典本身,若字典中还有字典是不会被复制
copy()用于对字典进行一个浅复制

a={'b':1,'c':'holle','d':3}
b=a.copy()
print(a,id(a))
print(b,id(b))
a={'a':{'c':45,'d':55},'b':3}
b=a.copy()
b['a']['c']=30
print(a,id(a))
print(b,id(b))

遍历字典

1、keys()
该方法返回字典所有的键

d={'name':'xxx','age':'xx'}
print(d.keys())

2、values()
该方法返回一个序列,保存字典的值

d={'a':1,'b':2,'c':3}
print (d.values())

3、items()
该方法返回字典当中所有的项,会返回一个序列,序列中包含双值子序列,双值分别是字典中的key-value

d={'a':21,'b':33,'c':44}
print (d.items())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值