Python基本数据类型之字典

栏目: Python · 发布时间: 5年前

内容简介:参考:

1.什么是字典

  • 字典就是key-value键值对数据的集合(且key不可重复);
  • 字典是可变的,无序的;
  • 字典中,key必须是可哈希的数据类型;

2.字典的定义和初始化

  • 定义字典可以使用d = dict() 或者 d = {}两种方法;
d = dict()  #定义字典
d = {}
  • 使用键值对的方式初始化字典;
d = {'a':1, 'b':2}
print(d)    #输出:{'a': 1, 'b': 2}
  • 使用传参的方式初始化字典;
d = dict(a=1, b=2)
print(d)    #输出:{'a': 1, 'b': 2}
  • 使用元组的方式初始化字典(比较少见);
d = dict((('a',1),('b', 2)))
print(d)    #输出:{'a': 1, 'b': 2}
  • 使用字典构造器的构造方法fromkeys() 来通过可迭代对象批量的传值;
d = dict.fromkeys(range(5), 'hello')
print(d)    #输出:{0: 'hello', 1: 'hello', 2: 'hello', 3: 'hello', 4: 'hello'}

3.字典的访问

d = {'a':10, 'b':20}

d.setdefault('c', 30)   # 设置默认值

print(d['a'])    #输出:10

print(d.get('d', None))   #输出:None

print(d)  #输出:{'a': 10, 'b': 20, 'c': 30}
  • 字典可以通过key来访问;
  • 使用setdefault()方法来设置默认值(只能加一个新的值,不能覆盖原有值);
  • 使用get()方法通过key来访问字典,当key存在时,返回value值,key不存在时返回则None;

4.字典修改

d = {'a':1, 'b':2}
d.update({'c': '3'})
print(d)   #输出:{'a': 1, 'b': 2, 'c': '3'}

d['a'] = 10
print(d)    #输出:{'a': 10, 'b': 2, 'c': '3'}
  • 使用update()方法来修改字典;
  • 直接使用key来修改字典;

5.字典插入

  • 直接使用key来插入;
d = {'a':10, 'b':20}
d['c'] = 30
print(d)   #输出:{'a': 10, 'b': 20, 'c': 30}

6.字典的删除

d = {'a':10, 'b':20}
  • pop:通过pop()方法删除指定key的value;
d.pop('a',None)
print(d)   #输出:{'b': 20}
  • popitem:随机删除任意键值对;
d.popitem()   #删除任意键值对
print(d)    #输出:{'a': 10}
  • clear:删除字典所以元素;
d.clear()
print(d)      #输出:{}
  • del:通过del魔术方法删除指定key的value;
del d['a']
print(d)     #输出:{'b': 20}

7.字典的遍历

d = {'a':10, 'b':20}

# key的遍历
for key in d:
    print(key)
for key in d.keys():
    print(key)

# value的遍历
for key in d:
    print(d[key])
for key in d.keys():
    print(d.get(key))

# key/value遍历
for item in d.items():
    print(item)
for key,value in d.items():
    print(key, value)
  • 字典可以使用for来遍历的;
  • for循环可以单独遍历key,单独遍历value,key和value一起遍历;
  • 单独遍历key或者value时需要用到keys;
  • key和value一起遍历需要是用到items;

8.标准库中的字典

  • 默认字典:defaultdict,当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值,默认字典初始化什么类型,返回值对应该类型的空值 (如int返回0,str返回空字符串);
from collections import defaultdict
dict1 = defaultdict(int) # 默认值是0
print(dict1[1])  #输出:0
print(dict1[2])  #输出:0

dict2 = defaultdict(set) # 默认的是set( )
print(dict2[1])    #输出:set()
print(dict2[2])     #输出:set()


dict3 = defaultdict(str) # 默认是空字符串
print(dict3[1])

dict4 = defaultdict(list) # 默认是空列表[]
print(dict4[1])   #输出:[]
  • 有序字典:OrderedDict,记录了key插入的顺序,也就是让无序的字典变为有序;
from collections import OrderedDict
import random
d = {'赵': 1, '钱': 2, '孙': 3, '李': 4}
keys = list(d.keys())  #把键值存入列表中
print(keys)   #输出:['赵', '钱', '孙', '李']

random.shuffle(keys)  #随机打乱列表中的keys值
print(keys)

order_d = OrderedDict()   #创建一个有序字典对象
for key in keys:
    order_d[key] = d[key]
print(order_d.keys())

参考: https://www.9xkd.com/user/pla...


以上所述就是小编给大家介绍的《Python基本数据类型之字典》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法神探

算法神探

[美] 杰瑞米·库比卡 / 啊哈磊、李嘉浩 / 电子工业出版社 / 2017-2 / 65

《算法神探:一部谷歌首席工程师写的CS小说》围绕程序设计典型算法,精心编织了一个扣人心弦又趣味横生的侦探缉凶故事。小说主人公运用高超的搜索技巧和精深的算法知识,最终识破阴谋、缉拿元凶。其间,用二分搜索搜查走私船、用搜索树跟踪间谍、用深度优先搜索逃离监狱、用优先队列开锁及用最佳优先搜索追寻线索等跌宕起伏又富含算法精要的情节,让读者在愉悦的沉浸式体验中快速提升境界,加深对程序世界的理解。《算法神探:一......一起来看看 《算法神探》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具