Python基础之字典

Posted foxshu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础之字典相关的知识,希望对你有一定的参考价值。

1.创建字典

  字典中每个值都有一个唯一的key,key需要被哈希,可以是可以是数字、字符串、元组;用大括号‘{}‘将内容扩起来,且是无序的。

1 info = {name:fox,age:16,work:it}
2 print(info)
3 结果:
4 {age: 16, work: it, name: fox}

2.增

  通过需要增加的key和值,直接赋值给字典,即可添加元素。

1 info = {name:fox,age:16,work:it}
2 info[sex] = M
3 print(info)
4 结果:
5 {name: fox, age: 16, work: it, sex: M}

3.删

1)info.pop()删除指定key的键值对,如果所删除的key不存在则报错。

1 info = {name:fox,age:16,work:it}
2 info.pop(work)
3 print(info)
4 结果:
5 {name: fox, age: 16}

2)info.clear()清除所有键值对

1 info = {name:fox,age:16,work:it}
2 info.clear()
3 print(info)
4 结果:
5 {}

4.改

1)同增类似,直接通过key的修改其对应的值,因为是无序无法查找其位置。

1 info = {name:fox,age:16,work:it}
2 info[work] = ui
3 print(info)
4 结果:
5 {work: ui, age: 16, name: fox}

2)info.update()当另一个字典中有当前字典的key,则修改,像‘age‘中的16改成18;如果另一个字典中再当前字典中没有的key,则将键值对添加到当前字典,像‘sex‘:‘M‘。

1 info = {name:fox,age:16,work:it}
2 info1 = {age:18,sex:M}
3 info.update(info1)
4 print(info)
5 结果:
6 {work: it, age: 18, name: fox, sex: M}

5.查

1)info.get()根据指定key查找对应的值

1 info = {name:fox,age:16,work:it}
2 print(info.get(age))
3 结果:
4 16

2)info.setdefault()如果key存在,则读出该键对应的值;如果key不存在,则以该值作为字典的key,None作为值添加到字典中。

 1 info = {name:fox,age:16,work:it}
 2 info.setdefault(work)
 3 print(info.setdefault(work))
 4 print(info)
 5 info.setdefault(ff)
 6 print(info.setdefault(ff))
 7 print(info)
 8 结果:
 9 it
10 {work: it, age: 16, name: fox}
11 None
12 {work: it, age: 16, name: fox, ff: None}

6.遍历字典key和值

1)info.keys()遍历出字典info中的key

1 info = {name:fox,age:16,work:it}
2 print(info.keys())
3 结果:
4 dict_keys([age, work, name])

2)info.values()遍历出字典info中的值

1 info = {name:fox,age:16,work:it}
2 print(info.values())
3 结果:
4 dict_values([it, 16, fox])

3)info.item()通过for方法可将key和值都遍历出来

1 info = {name:fox,age:16,work:it}
2 for key,value in info.items():
3     print(key,:,value)
4 结果:
5 age : 16
6 name : fox
7 work : it

7.OrderedDict类

  OrderedDict类可以将字典变得有序,正常情况下字典是无序的,一个普通的字典,如果键值对一样,即使顺序不一样,那么两个字典是相等的。

1 info = {name:fox,age:16,work:it}
2 info1 = {age:16,work:it,name:fox}
3 print(info == info1)
4 结果:
5 True

  使用OrderedDict()方法后,键值对一样,但是顺序不同时,不相等;OrderedDict()方法是collections模块的方法,不是内置方法,故需要导入,即(from collections import OrderedDict)指导入collections模块的OrderedDict类。

1 from collections import OrderedDict
2 info = {name:fox,age:16,work:it}
3 info1 = {age:16,work:it,name:fox}
4 info1 = OrderedDict()
5 print(info == info1)
6 结果:
7 False

以上是关于Python基础之字典的主要内容,如果未能解决你的问题,请参考以下文章

python基础一数据类型之字典

python基础之字典

python基础之字典篇

python基础之字典

python基础数据类型之字典+集合

python基础入门之六 —— 字典