python写字典_Python-字典

一、概念

字典用大括号{}表示,键值对格式。优点是取数据方便,速度快。

从string到list到dict,取数据越来越简单。

字典是无序的。

下面是一个字典。这个字典包含了4个键值对。4个key分别为:name、sex、addr、age。每个key都有对应得value。

02fbc655f46da27f6adeb014d2c672a2.png

二、字典操作

1、查

有2种方法可以对字典进行查询。

第一种是get,语法格式为:dict.get('key'),查对应key的值。

此方法的优点是,可以定义假如key不存在,取到的默认值。如果不定义,返回None,不会报错。

第二种语法格式为:dict['key'],也是查询对应key的值,但是如果key不存在会报错。

0ef67b0556e932f5449d803860283144.png  

73e71dc849d425e19966d8a03da3f353.png

另外,还可以查询字典所有的key,value,k-v。

ab3e27a7be3f4f2f92383431a1e4d8f4.png

b6763b7090060f1ce069b0dc9a0b0f96.png

2、增

增也有2种方法。

第一种,直接dict['new_key']=value。采用这种方法不止可以新增k-v对,还可以修改已有的key对应的value。

22b18fee8ffaab407a71df3c10bbaaa0.png

070b67f1de2112e84aa36af6e6f62ca2.png

第二种,语法格式为:dict.setdefault('new_key','value')。这种方法如果key存在,不能修改对应的值,也不会报错。

23b43f19141fe2df571ba59a16027455.png

80003e92b0587a305490aadb8c92a995.png

3、改

在上一部分已经介绍了如何修改,dict['new_key']=value即可。要把name的值改为小红,直接infos['name']='小红'就可以了。

4、删

(1)dict.pop('key'),删除指定的key。如果key不存在会报错。

1c1516f991cb7654d0666fda8fb3d9f6.png

77d50f70f57acb013212a27699153ffb.png

(2)dict.popitem(),随机删除一个key,无法指定key

(3)del dict['key'],删除指定key。如果key不存在会报错。

1946b9b5938119dfc62e56a9ec600f59.png

e3f4e3b750af7ec6458532cc428293eb.png

三、取字典中的值

字典取值也是一层层的取。

例:

package = {

'pack_1':{

'name':'小兰',

'phone':18888888888,

'addr':'北京',

'sex':'女',

'money':200,

'contain':['books','clothes','cup','hat']

},

'pack_2':{

'weight':'1.5kg',

'contact':['phone','email'],

'cities': {

'china':['北京','上海','深圳'],

'usa':['纽约','洛杉矶','华盛顿'],

'Australia':['悉尼','墨尔本']

}

}

}

# 取pack_2的洛杉矶

print(package['pack_2']['cities']['usa'][1])

#取出pack_2所有的中国城市

print(package['pack_2']['cities']['china'])

#在pack_1中增加'contain'元素,增加'shoes'

package['pack_1']['contain'].append('shoes')

print(package['pack_1']['contain'])

#money增加100

package['pack_1']['money'] = package['pack_1']['money'] + 100

print(package['pack_1']['money'])

分析:

(1)取‘洛杉矶’时,首先要取到usa这一层  package['pack_2']['cities']['usa'],usa这一层是列表,所以接下来应该按照 list 取元素的方式取。

(2)增加contain中的元素,首先要取到contain这一层,也就是 package['pack_1']['contain'],contain是 list,因此用list增加元素的方法增加'shoes'

运行结果为:

7a2d2d5575525a0bd5028d8a498065b4.png

四、字典循环

字典循环,循环的是key。将上面的字典循环。

bf2b4861cf225aa2a6b12a6babaf6a4a.png  

3f7d85a5557f0fe685dc1b675f84aaa6.png

如果想k-v都循环,可以用下面的方式:

48d3b6ac1154bcf6e055c281e2f1c655.png

6ef203e00a294e68fe8bfc1620f442b3.png

五、下面做一个字典的小练习

请设计一个注册的小程序,实现以下功能:(1)输入用户名,密码,再次确认密码(2)校验用户名是否已经注册,已经注册的不允许再次注册;(3)校验两次输入密码是否一致,不一致给出提示;(4)最多输入错误3次;(5)注册成功后,将新的用户添加进去。

users = {

'mary':'123456',

'lily':'456789'

}

for i in range(3):

username = input('账号:').strip()

passwd = input('密码:').strip()

cpasswd = input('密码确认:').strip()

if username=='' or passwd=='' or cpasswd=='':

print('用户名/密码不能为空')

elif username in users:

print('用户名已经被注册')

elif passwd!=cpasswd:

print('两次输入的密码不一致')

else:

print('恭喜,注册成功!')

users[username]=passwd

break

else:

print('错误次数过多')

print(users)

六、字典排序

字典是无序的,所以不能直接对字典进行排序。

d.items(),是取字典的key和value,结果是一个二维数组

对字典的排序方法如下:

06474ab9850191bfc64d5d8d8d770f32.png

27b388e75b8fa92a4731caaed66261bf.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值