Python字典(3分钟极速掌握)

字典结构在Python中的地位也是举足轻重,如果非要给他个排名的话,list居第一,字典就是第二了。一点也不夸张,以后在开发中用到字典结构的地方简直数不胜数。
什么是字典?字典就是一长串key:value相对应的一个集合,就好比是一个班级,班里面每个人都对应了一个名字一样。这样的一个集合我们说它是字典结构。
下面我们先看一下怎么创建一个字典:

ji={}
print(type(ji))
>>>< class 'dict'>

这是第一种方式,还有一种创建方式:

suan=dict()
print(type(suan))
>>><class 'dict'>

这两种方式都可以,看你自己的习惯来吧。那么怎么初始化我们的字典呢?既然是一串的key:value对应值,那么我们可以这样做:

a={"ShenZhen":1,"ShangHai":2,"BeiJing":3}
print(a)
>>>{'ShenZhen': 1, 'ShangHai': 2, 'BeiJing': 3}

同时我们也可以先创建好,后面什么时候需要了,我们就什么时候往里面加子项:

b = {}
b["GuangZhou"] = "4"
b["DongGuan"] = "5"
print(b)
>>>{'GuangZhou': '4', 'DongGuan': '5'}

有人要问了,字典里面可不可以存在key不相同而value相同的子项呢?我们试一下:

c={"BeiJIng":1,"ShangHai":1,"GuangZhou":1}
print(c)
>>>{'BeiJIng': 1, 'ShangHai': 1, 'GuangZhou': 1}

答案显而易见,只要key不同,就不会管你value是多少了。这个时候我们又会想,那么存不存在key一样value不一样的子项?试一下:

d={"ji":1,"suan":2,"ji":3}
print(d)
>>>{'ji': 3, 'suan': 2}

答案显而易见,所以我们要记住:字典中可以存在value一致的子项,但绝不会存在key一致的子项。
在list的学习中我们知道,list当中可以存在任意类型的数值,那么在字典中可以么?照样我们实践一下:

a={"t1":"1","t2":2,"t3":[1,2,3],1:111,"dic":{"s1":555,"s2":666}}
print(a)
>>>{'t1': '1', 't2': 2, 't3': [1, 2, 3], 1: 111, 'dic': {'s1': 555, 's2': 666}}

这说明我们的字典当中对key和value的限制几乎为零,你想怎么玩就怎么玩。不过为了用的时候方便,一般情况下我们是不会这样胡乱的把数据扔字典里面的。大家知道可以这么用就行了。
上面我们学习了字典的创建和初始化,那么字典怎么去根据key拿它对应的value呢?

a = {"t1":"1","t2":2,"t3":[1,2,3],1:111,"dic":{"s1":555,"s2":666}}
print(a[1])
print(a.get(1))
print(a.get("x","null"))
>>>
111
111
null

直接根据key去所以的方法a[1]当然可以,根据key去调用get(“1”)方法也可以,甚至在get()方法中我们如果给第二个参数意义:就是告诉用的人,在调用的时候,如果在字典中没有找到你传入的key对应的value那么就会把get()方法中传入的第二个参数返回给你。
下面我们看看在字典中的删除操作:

a={"t1":"1","t2":2,"t3":[1,2,3],1:111,"dic":{"s1":555,"s2":666}}
print(a)
dela[1]
print(a)
>>>
{'t1': '1', 't2': 2, 't3': [1, 2, 3], 1: 111, 'dic': {'s1': 555, 's2': 666}}
{'t1': '1', 't2': 2, 't3': [1, 2, 3], 'dic': {'s1': 555, 's2': 666}}

首先我们把原来的字典给打印了出来,然后执行del方法后 ,python会根据你传的key去把整个键值对删除掉。对比删除后的字典发现,key为1的键值对已经没有了。
然后我们再看下字典的更新操作,比如说我想把a字典中key为”t1”对应的value “1”修改为”234”:

a={"t1":"1","t2":2,"t3":[1,2,3],1:111,"dic":{"s1":555,"s2":666}}
b={"t1":"234"}
a.update(b)
print(a)
>>>
{'t1': '234', 't2': 2, 't3': [1, 2, 3], 'dic': {'s1': 555, 's2': 666}}

果然,通过调用update()方法,我们已经成功的把key=”t1”对应的值给修改为了”234”.

a={"t1":"1","t2":2,"t3":[1,2,3],1:111,"dic":{"s1":555,"s2":666}}
print("t1"ina)
print(a.keys())
print(a.values())
print(a.items())
>>>
True
dict_keys(['t1', 't2', 't3', 'dic'])
dict_values(['234', 2, [1, 2, 3], {'s1': 555, 's2': 666}])
dict_items([('t1', '234'), ('t2', 2), ('t3', [1, 2, 3]), ('dic', {'s1': 555, 's2': 666})])

我们还可以在地点中使用in来判断该子项是否存在与字典中。values()取出字典中所有的value值,keys()取出字典中所有的key值,items()取出所有的子项。
也好理解,只要把上面的理解的差不多,后面的项目中基本就够用了。
更多内容请关注微信公众号“计算机自学平台”

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值