python基础—dict
时间:2022-07-22
本文章向大家介绍python基础—dict,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
字典是key-value键值对的数据的集合
可变的,无序的,key不重复
</li>
<li>
字典的key要求和set集合的要求一致,可哈希才可以作为key
</li>
```
dict()方法
d = dict(((1,‘a’),(2,‘b’))) d {1: ‘a’, 2: ‘b’}
d2 = dict(([1,‘a’],[2,‘b’])) d2 {1: ‘a’, 2: ‘b’}
#直接使用{}去构造 d3 = {‘a’: 1,‘b’: 2,‘c’: 3} d3 {‘a’: 1, ‘b’: 2, ‘c’: 3}
#类方法 dict.fromkeys(iterable,value) d4 = dict.fromkeys(range(5)) d4 {0: None, 1: None, 2: None, 3: None, 4: None}
d5 = dict.fromkeys([‘a’,‘b’,1,2,3]) d5 {‘a’: None, ‘b’: None, 1: None, 2: None, 3: None}
d6 = dict.fromkeys(range(5),‘python’) d6 {0: ‘python’, 1: ‘python’, 2: ‘python’, 3: ‘python’, 4: ‘python’}
<h2>
字典元素的访问
</h2>
d[key]
<ul>
<li>
返回key对应的值value
</li>
<li>
key不存在抛出KeyError异常
</li>
</ul>
```
d = {1: 'a', 2: 'b'}
d[1]
'a'
get(key,default)
- 返回key对应的值value
- key不存在返回缺省值,如果没有
d = {1: 'a', 2: 'b'}
d.get(1)
'a'
d[key] = value
- 将key对应的值修改为value
- key不存在添加新的kv对
d
{1: 'a', 2: 'b'}
d[3] = 'c'
d
{1: 'a', 2: 'b', 3: 'c'}
d[2] = 'python'
d
{1: 'a', 2: 'python', 3: 'c'}
update([other])
- 使用另一个字典的kv对更新本字典
- key不存在,就添加
- key存在,覆盖已存在的key对应的值
- 就地修改
d.update(red=1)
d
{1: 'a', 2: 'python', 3: 'c', 'red': 1}
d.update({'red': 2})
d
{1: 'a', 2: 'python', 3: 'c', 'red': 2}
d.update((('red',3),))
d
{1: 'a', 2: 'python', 3: 'c', 'red': 3}
d6
{0: 'python', 1: 'python', 2: 'python', 3: 'python', 4: 'python'}
d.update(d6)
d
{1: 'python', 2: 'python', 3: 'python', 'red': 3, 0: 'python', 4: 'python'}
字典删除
pop(key,default)
- key存在,移除它,并返回它的value
- key不存在,返回给定的default
- 如果default没有设置,那么当key不存在时,使用pop会抛出异常
d.pop(5)
'a'
d.pop(6,'not exist')
'not exist'
popitem()
- 移除并返回一个任意的键值对
- 字典为empty,抛出KeyError异常
d.popitem()
(0, 'python')
d.popitem()
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-76-83c64cff336b> in <module>()
----> 1 d.popitem()
KeyError: 'popitem(): dictionary is empty'
clear()
- 清空字典
del语句
d = {'a': 1,'b': b,'c': [1,3,5]}
del d['a']
d
{'b': [], 'c': [1, 3, 5]}
字典遍历
1)遍历key
for k in d:
print(k)
或
for k in d.keys():
print(k)
2)遍历value
for k in d:
print(d[k])
或
for k in d.keys():
print(d.get(k))
或
for v in d.values():
print(v)
或
for _,v in d.items():
print(v)
defaultdict工厂函数
collections.defaultdict([default_factory,….])
- 第一个参数是default_factory,缺省是None,它提供一个初始化函数,当key不存在的时候,会调用这个工厂函数来生成key对应的value
OrderedDict使用
collections.OrderedDict([items])
- key并不是按照加入的顺序排列,可以使用OrderedDict记录顺序
- 有序字典可以记录元素插入的顺序,打印的时候也是按照这个顺序输出打印
- 3.6版本的字典就是记录Key插入的顺序
- ASP.NET Core中的依赖注入(3): 服务的注册与提供
- 【Scikit-Learn 中文文档】使用 scikit-learn 介绍机器学习 | ApacheCN
- 哈萨比斯:2018年AI最大突破在生物或化学领域
- ASP.NET Core中的依赖注入(5): ServiceProvider实现揭秘 【总体设计 】
- ASP.NET MVC的View是如何被呈现出来的?[设计篇]
- Python大牛告诉你一行代码能干什么?神奇
- 谷歌最新人工智能研究:仅利用稀疏轮廓位置“重构”图像
- DATUM和BigchainDB
- MySQL主从复制的实现过程
- 使用dict和set
- 区块链技术(二):以太坊编程语言Solidity安装及入门初体验
- SQL注入测试神器sqlmap
- 人工智能也分强与弱?
- 【Scikit-Learn 中文文档】集成方法 - 监督学习 - 用户指南 | ApacheCN
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 利用GoogleAppsScript自动回复短信实现保号
- 用php来查询graphql
- 利用树莓派的摄像模块实现“扫码枪”
- n ../../node_modules/@storybook/channels/dist/index.d.ts:25:9 - error TS1086: An accessor cannot ...
- 要不来重新认识Spring事务?三歪又学到了
- 读者问:学完SSM,该学什么呢?
- go-zero 微服务框架介绍
- redis-cli 未找到命令的一个解决方式
- 【每日一题】42. Trapping Rain Water
- iframe跨域安全
- Efficiently traversing InnoDB B+Trees with the page directory (9.利用页目录实现对B+树的高效遍历)
- C语言 | 每日基础(37)
- 《求求大厂给个Offer》Map面试题
- C语言 | 每日基础(40)
- kubernete编排技术七:secret