python定义字典长度_字典详解dict
[toc]
## 字典的定义与特性
字典是Python语言中唯一的映射类型。
### 定义:
`{key1:value1,key2:value2}`
1. 键与值用冒号“:”分开;
2. 项与项用逗号“,”分开;
### 特性:
1. key-value结构
2. key必须可hash、且必须为不可变数据类型、必须唯一
3. value可存放任意多个值、可修改、可以不唯一
4. 无序
## 字典的创建与常见操作
### 字典的创建
```python
person = {"name": "alex", 'age': 20}
#或
person = dict(name='seven', age=20)
#或
person = dict({"name": "egon", 'age': 20})
#或
```
### 键、值、键值对
1. dic.keys()
返回一个包含字典所有KEY的列表;
```python
>>> mydic={'name': 'luo', 'age': '22','sex':'man'}
>>> mydic.keys()
dict_keys(['name', 'age', 'sex'])
```
2. dic.values()
返回一个包含字典所有value的列表;
```python
>>> mydic={'name': 'luo', 'age': '22','sex':'man'}
>>> mydic.values()
dict_values(['luo', '22', 'man'])
```
3. dic.items()
返回一个包含所有(键,值)元祖的列表;
```python
>>> mydic={'name': 'luo', 'age': '22','sex':'man'}
>>> mydic.items()
dict_items([('name', 'luo'), ('age', '22'), ('sex', 'man')])
```
### 新增修改
1. dic['new_key'] = 'new_value';
如果key不存在则增加,如果存在则修改源key的vaule
```python
>>> mydic={'name': 'luo', 'sex':'man'}
>>> mydic['age']=22
>>> mydic['name']='gang'
>>> mydic
{'name': 'gang', 'sex': 'man', 'age': 22}
```
2. dic.setdefault(key, None)
如果字典中存在key则获取,不存在Key为它赋值;
```python
>>> mydic={'name':'luo'}
>>> mydic.setdefault('name','gang')
'luo'
>>> mydic.setdefault('age','22')
'22'
>>> mydic
{'name': 'luo', 'age': '22'}
```
### 查看
1. dic['key']
返回字典中key对应的值,若key不存在字典中,则报错;
```python
>>> mydic={'name': 'luo', 'age': '22','sex':'man'}
>>> mydic['age']
'22'
>>> mydic['ages']
Traceback (most recent call last):
File "", line 1, in
KeyError: 'ages'
```
2. dict.get(key, default = None)
返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)
```python
>>> mydic={'name': 'luo', 'age': '22','sex':'man'}
>>> mydic.get('age')
'22'
>>> mydic.get('ages')
>>> mydic.get('ages',50)
50
```
### 删除
1. dic.pop(key[,default])
和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;
```python
>>> mydic={'name': 'luo', 'age': '22','sex':'man'}
>>> mydic.pop('age')
'22'
>>> mydic.pop('age')
Traceback (most recent call last):
File "", line 1, in
KeyError: 'age'
>>> mydic
{'name': 'luo', 'sex': 'man'}
```
2. dic.clear()
删除字典中的所有项或元素;
```python
>>> mydic.clear()
>>> mydic
{}
```
3. del通用删除
```python
>>> mydic={'name': 'luo', 'age': '22','sex':'man'}
>>> del mydic['name']
>>> mydic
{'age': '22', 'sex': 'man'}
```
### 长度和合并
1. len(dic)
获取字典长度
```python
>>> mydic={'name': 'luo', 'age': '22','sex':'man'}
>>> len(mydic)
3
```
2. dic.update(dic2)
将字典dic2的键值对添加到字典dic中
```python
>>> mydic1={'name': 'luo'}
>>> mydic2={'sex': 'man'}
>>> mydic1.update(mydic2)
>>> mydic1
{'name': 'luo', 'sex': 'man'}
```
### 是否存在
```python
>>> mydic={'name': 'luo', 'age': '22','sex':'man'}
>>> 'name' in mydic
True
>>> 'names' in mydic
False
```
### 循环方式
1. for k in dic等于for k in dic.keys() 推荐
```python
>>> mydic={'name': 'luo', 'age': '22','sex':'man'}
... for k in mydic:
... print(k,mydic[k])
name luo
age 22
sex man
```
2. for k,v in dic.items() 不推荐
之所以这种方法不推荐,是因为这种方法是把字典转换为了元组进行循环,而字典事通过hash的方式获取键值,效率很高,转换为元组反而浪费资源了效率.
```python
>>> mydic={'name': 'luo', 'age': '22','sex':'man'}
... for k,v in mydic.items():
... print(k,v)
name luo
age 22
sex man
```
### 多级嵌套列表
```python
>>> info={
... 'stu01':{'name':'luo','age':22},
... 'stu02':{'name':'gang','age':32}
... }
>>> info
{'stu01': {'name': 'luo', 'age': 22}, 'stu02': {'name': 'gang', 'age': 32}}
```
python定义字典长度_字典详解dict相关推荐
- python动态显示进度条_实例详解python如何轻松实现动态进度条
本次的这篇文章主要是和大家分享了关于实例详解python如何轻松实现动态进度条,有需要的小伙伴可以看一下 思路及讲解 假设有一个1000000数据的列表(为了让进度条可以显示出来,很大的数据),我们每 ...
- 廖雪峰python - 高级特性 - 生成器 _ 练习详解
杨辉三角:每个数等于它上方两数之和.空位看作0 答案: #定义函数 def triangles():L = [1] // L是只含1的list(列表)yield L // generator的函数遇到 ...
- python定义变量长度_超详细的Python变量的基本使用
这里是一段防爬虫文本,请读者忽略. 本文原创首发于CSDN,作者IDYS 博客首页:https://blog.csdn.net/weixin_41633902/ 本文链接:https://blog.c ...
- python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)
今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...
- python线性整数规划求解_实例详解:用Python解决整数规划问题!
我们将使用整数规划来做出最佳决策 整数规划(IP)问题是所有变量都被限制为整数的优化问题(指规划中的变量(全部或部分)限制为整数,若在线性模型中,变量限制为整数,则称为整数线性规划).IP问题是有关于 ...
- Python精讲:在Python中遍历字典的三大方法详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中遍历字典的三大方法详解>.本知识点主要内容有:使用字典对象的items()方法可以遍历字典的项和字典的&qu ...
- python编程字典100例_python中字典(Dictionary)用法实例详解
本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...
- python中字典del的用法_python中字典(Dictionary)用法实例详解
本文展示了字典在python中的使用.分享给大家参考.具体分析如下: 字典是一种映射结构的数据类型,由无序的"键值对"组成.字典的关键字必须是不可改变的类型,如字符串.数字和元组: ...
- Python函数(函数定义、函数调用)用法详解
函数 函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量重复的代码. 函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码.函数还可以接 ...
最新文章
- git 常用操作总结
- ASP.NET制作一个简单的等待窗口
- 还在安装各种截图软件?Windows10自带的截图工具你会用吗?
- 你们也只剩下点赞的交情
- JavaFX 新WebService客户端脚本语言
- LoadRunner场景设置里的各参数解释
- 立即表达式的多种写法与注意点以及in操作符的作用
- 国家邮政局:除夕和初一包裹量超1.3亿件,同比增长223%
- socket网络字节序相关概念
- leetcode 杨辉三角 III
- 计生专干招聘计算机,请求解决招聘计生专干待遇
- 使用百度地图接口绘制地图
- 麻省理工学院计算机博士奖学金,NWU这位高颜值学霸小姐姐,获麻省理工博士全额奖学金录取!...
- Vue.js 父子组件通信的十种方式;告诉世界前端也能做 AI;你可能不知道的14个JavaScript调试技巧...
- 如何将nb公式转换成matlab公式
- ubuntu apt-get 安装amd显卡驱动
- 【Spring实战】----Security4.1.3鉴权之美--基于投票的AccessDecisionManager实现及源码分析
- 一文读懂卫星导航测量天线
- 计算机网络(谢希仁 第七版) 第二章(物理层)-- 2.4 信道复用技术(频分复用、时分复用、统计时分复用 波分复用 码分复用)
- 施耐德电气在北京落成中国第二家智慧工厂