字典(dictionary)是一种通过键引用值的数据结构,这种结构称为映射(mapping),也是Python中唯一内建的映射类型

标准格式: dict = {key1:val1,key2:val2,key3:val3}

  1. 字典中的元素必须以项(键值对)的形式出现 (键key : 值value)
  2. 逻辑上讲,键不能重复,但值可以
  3. 键不可变,不可修改;值可变,可以是任何元素
  4. 字典指定值并没有特殊顺序

创建 & 使用字典

dict函数

可以使用dict函数将其他映射(如其他字典)或键值对建立字典

student = [('name','小智'),('number','1001')]
detail = dict(student)
print(detail)
>>>{'name': '小智', 'number': '1001'}
print('学生姓名:',detail['name'])
>>>学生姓名: 小智

或通过dict关键字创建字典

detail = dict(name = '小智',number = '1001')
print(detail)
>>>{'name': '小智', 'number': '1001'}

字典的基本操作

  1. 修改增添 | dict[key]
letter = {'a':1,'b':2,'c':3,'d':4}
letter['a'] = 6
print(letter)
>>>{'a': 6, 'b': 2, 'c': 3, 'd': 4}
>letter['e'] = 5
print(letter)
>>>{'a': 6, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

通过一个类似给键(key)赋值的方式修改字典
当key存在于字典内时:修改对应值;当key不在字典内时,添加新的键并赋值

  1. 删除 | del dict[key]
letter = {'a':1,'b':2,'c':3,'d':4}
del letter['c']
print(letter)
>>>{'a': 1, 'b': 2, 'd': 4}

如果在字典后不添加[key],则直接删除整个字典

  1. 字典键的特性
    不允许同一个键出现两次,如果同一个键被赋值两次,后面的赋值会被记住;
    键不可变,可用数字,字符串或元组充当
  1. len()函数 | len(dict)
    当此函数用于字典时,用于统计整个字典元素的个数(即键的个数)

字典格式化字符串

字典的格式化方式是在每个转换说明符(%)后加上圆括号()括起来的键,再跟上其他元素说明;
用这种方式使用字典时,只要给出的键都能在字典中找到,就可以获得任意数量的转换说明符

letter = {'a':1,'b':2,'c':3,'d':4}
print('the letter a is %(a)s , c is &(c)s here' % letter)
>>>the letter a is 1 , c is 3 here

字典与列表的区别

dict可以用在很多需要高速查找的地方,需要牢记:键必须是不可变对象

dict的特点:

  1. 查找和插入的速度都极快,不会随key的增加而变慢;
  2. 需要占用大量内存

list的特点:

  1. 查找和插入时间随元素增加而增加
  2. 占用空间小

字典的方法

clear()

dict.clear()
用于删除字典内的所有项

letter = {'a':1,'b':2,'c':3,'d':4}
print(letter.clear())
>>>None

copy()

dict.copy()
用于返回一个具有相同键值对的新字典,此方法是浅复制(shallow copy),因为值本身是相同的,而不是副本;

fromkeys()

dict.fromkeys(seq[,value])
用于创建一个新字典,dict代表指定字典;seq代表字典键列表;value(可选参数)代表键对应的值;
此方法中dict为必写项

a = '1234'
print(dict.fromkeys(a,0)) # 生成一个以变量a的值为键集合的字典,并赋值‘0’
>>>{'1': 0, '2': 0, '3': 0, '4': 0}
a = ['1','2','3','4']
print(dict.fromkeys(a,0))
>>>{'1': 0, '2': 0, '3': 0, '4': 0}
a = [1,2,3,4]
print(dict.fromkeys(a,0))
>>>{1: 0, 2: 0, 3: 0, 4: 0}
a = [1234]
print(dict.fromkeys(a,0))
>>>{1234: 0}

get() & setdefault()

  • dict.get(key,default= None)
    get()方法返回指定键的值,如果键不在字典中,则返回默认值(None),不改变原字典
  • dict.setdefault(key,default=None)
    setdefault()方法与get()类似,也是根据指定键获取对应的值;
    不同的是:如果键不在字典中,就在原字典中创建这个键,并赋值默认值(None)
a = {1:0,2:0,3:0,4:0}
print(a.get(1)) # 寻找键1 对应的值,返回值为默认
>>>0
print(a.get(5)) # 寻找键5 对应的值,返回值为默认
>>>None
print(a.get(5,9)) # 寻找键5 对应的值,并设定返回的默认值为 9
>>>9
print(a) # get()不会改变原字典
>>>{1: 0, 2: 0, 3: 0, 4: 0}
print(a.setdefault(1)) # 寻找键1 对应的值,如果键在字典内,返回对应的值;若键不在字典内,创建键 1,赋值None
>>>0
print(a.setdefault(5)) # 寻找键5 对应的值,如果键在字典内,返回对应的值;若键不在字典内,创建键 5,赋值None
>>>None
print(a) # setdefault()改变原字典,添加了新的项 5:None
>>>{1: 0, 2: 0, 3: 0, 4: 0, 5: None}
print(a.setdefault(5,9)) # 寻找键5 对应的值,如果键在字典内,返回对应的值;若键不在字典内,创建键 5,赋值9
>>>None # 因为之前已经添加了新的项 5:None,所以键5可以被找到,值为None
print(a) #
>>>{1: 0, 2: 0, 3: 0, 4: 0, 5: None}

update()

dict.update(dict2)
用于把字典dict2的项更新添加到dict里( 类似于列表方法中的 list.extend(esq) )

a = {1:0,2:0,3:0,4:0}
b = {'1':'u','2':'i'}
a.update(b)
print(a)
>>>{1: 0, 2: 0, 3: 0, 4: 0, '1': 'u', '2': 'i'}

keys() & values() & items()

  • dict.keys()
    以列表的形式返回字典dict所有的键
  • dict.values()
    以列表的形式返回字典dict所有的值,与keys()不同的是,返回的列表可以包含重复的元素
  • dict.items()
    以元组数组的形式遍历字典dict所有的项
a = {1:0,2:0,3:0,4:0}
b = {'1':'u','2':'i'}
a.update(b)
print(a.keys())
>>>dict_keys([1, 2, 3, 4, '1', '2'])
print(a.values())
>>>dict_values([0, 0, 0, 0, 'u', 'i'])
print(a.items())
>>>dict_items([(1, 0), (2, 0), (3, 0), (4, 0), ('1', 'u'), ('2', 'i')])

字典 dictionary相关推荐

  1. Python 字典(Dictionary) get()方法

    Python 字典(Dictionary) get()方法 描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: ...

  2. Python 字典(Dictionary)

    Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在 ...

  3. python 字典代码_Python 字典(Dictionary)

    Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包 ...

  4. TypeScript 使用 字典 Dictionary

    TypeScript 没有直接的 Map 和 Dictionary 类型.不过我们可以使用索引类型模拟它们. // key 为 string,value 为 number; const dic: { ...

  5. C#字典Dictionary排序(顺序、倒序)

    这里是针对.NET版本过低的排序方式,没怎么用过,记录一下: 一.创建字典Dictionary 对象 假如 Dictionary 中保存的是一个网站页面流量,key 是网页名称,值value对应的是网 ...

  6. 带你学python基础:元祖tuple和字典dictionary

    一.什么是元祖 如果你学过列表 List 的话,那么,你是否会觉得元祖和列表是不是特别的相似呢? 确实,是的.但是,他们之间也是有一些区别的. 而不同之处在于元祖的元素不能被修改,而列表的元素可以被修 ...

  7. python编程字典100例_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  8. python 复制dict_超全的Python 字典(Dictionary)介绍

    字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: 键一 ...

  9. python 字典定义日志用法_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  10. python dictionary_Python 字典(Dictionary)

    Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在 ...

最新文章

  1. Schnorr签名与比特币隐私的必然性
  2. Interesting Array
  3. python实现列表去重_python实现七种列表去重方法
  4. 关于正则表达式匹配任意字符
  5. 通过mod_limitipconn模块来限制apache的并发连接数
  6. 开启服务_Nike Dunk 开启定制服务
  7. C++ Vector中size()和capacity()区别
  8. exchange 2010 允许 relay设定
  9. 小甲鱼老师目前所有视频教程下载地址(mark下来慢慢看系列)
  10. smith圆图重要性_smith圆图的理解
  11. DSP eCAP脉冲捕获实验
  12. HTML5 教程(四) - 内联元素
  13. 反汇编工具ollydbg ida
  14. 服务器上网站文件无法删除不了怎么办啊,Windows服务器上文件夹删不掉怎么办...
  15. 支付宝网页端支付接口实现案例流程
  16. android 手机存储大小设置,如何让手机内存变大?内存不足解决方法【详解】
  17. 点电荷分布matlab仿真,利用Matlab模拟点电荷的电场分布..doc
  18. 简记_插件电阻功率选型及使用注意事项
  19. 排序算法-归并排序详细图解
  20. 插装式比例插装阀比例节流阀比例顺序阀放大器

热门文章

  1. 电子科技大学830数字图像处理补充题目
  2. 数据库连接的7个步骤
  3. 如何禁用自动创建复制拓扑知识一致性检查器(MSKB)
  4. C++中endl、“\n”和‘\n’的区别
  5. STM32CubeMX实现串口中断通信
  6. 《Dreamweaver CS6 完全自学教程》笔记 第六章:使用表格进行网页布局
  7. 59十字链表,邻接多重表,边集数组,佛洛依德的冰山理论
  8. 2021_6_20杂文
  9. 《Adobe After Effects CS4经典教程》——1.10 控制用户界面的亮度
  10. Squirrel State Machine