[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相关推荐

  1. python动态显示进度条_实例详解python如何轻松实现动态进度条

    本次的这篇文章主要是和大家分享了关于实例详解python如何轻松实现动态进度条,有需要的小伙伴可以看一下 思路及讲解 假设有一个1000000数据的列表(为了让进度条可以显示出来,很大的数据),我们每 ...

  2. 廖雪峰python - 高级特性 - 生成器 _ 练习详解

    杨辉三角:每个数等于它上方两数之和.空位看作0 答案: #定义函数 def triangles():L = [1] // L是只含1的list(列表)yield L // generator的函数遇到 ...

  3. python定义变量长度_超详细的Python变量的基本使用

    这里是一段防爬虫文本,请读者忽略. 本文原创首发于CSDN,作者IDYS 博客首页:https://blog.csdn.net/weixin_41633902/ 本文链接:https://blog.c ...

  4. python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)

    今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...

  5. python线性整数规划求解_实例详解:用Python解决整数规划问题!

    我们将使用整数规划来做出最佳决策 整数规划(IP)问题是所有变量都被限制为整数的优化问题(指规划中的变量(全部或部分)限制为整数,若在线性模型中,变量限制为整数,则称为整数线性规划).IP问题是有关于 ...

  6. Python精讲:在Python中遍历字典的三大方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中遍历字典的三大方法详解>.本知识点主要内容有:使用字典对象的items()方法可以遍历字典的项和字典的&qu ...

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

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

  8. python中字典del的用法_python中字典(Dictionary)用法实例详解

    本文展示了字典在python中的使用.分享给大家参考.具体分析如下: 字典是一种映射结构的数据类型,由无序的"键值对"组成.字典的关键字必须是不可改变的类型,如字符串.数字和元组: ...

  9. Python函数(函数定义、函数调用)用法详解

    函数 函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量重复的代码. 函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码.函数还可以接 ...

最新文章

  1. git 常用操作总结
  2. ASP.NET制作一个简单的等待窗口
  3. 还在安装各种截图软件?Windows10自带的截图工具你会用吗?
  4. 你们也只剩下点赞的交情
  5. JavaFX 新WebService客户端脚本语言
  6. LoadRunner场景设置里的各参数解释
  7. 立即表达式的多种写法与注意点以及in操作符的作用
  8. 国家邮政局:除夕和初一包裹量超1.3亿件,同比增长223%
  9. socket网络字节序相关概念
  10. leetcode 杨辉三角 III
  11. 计生专干招聘计算机,请求解决招聘计生专干待遇
  12. 使用百度地图接口绘制地图
  13. 麻省理工学院计算机博士奖学金,NWU这位高颜值学霸小姐姐,获麻省理工博士全额奖学金录取!...
  14. Vue.js 父子组件通信的十种方式;告诉世界前端也能做 AI;你可能不知道的14个JavaScript调试技巧...
  15. 如何将nb公式转换成matlab公式
  16. ubuntu apt-get 安装amd显卡驱动
  17. 【Spring实战】----Security4.1.3鉴权之美--基于投票的AccessDecisionManager实现及源码分析
  18. 一文读懂卫星导航测量天线
  19. 计算机网络(谢希仁 第七版) 第二章(物理层)-- 2.4 信道复用技术(频分复用、时分复用、统计时分复用 波分复用 码分复用)
  20. 施耐德电气在北京落成中国第二家智慧工厂

热门文章

  1. MBIST --- PATR1.Memorybist测试原理
  2. 文本编辑器Vim/Neovim被曝任意代码执行漏洞,Notepad:兄弟等你好久了
  3. 商场wifi覆盖方案
  4. 内存池:申请内存与释放内存
  5. android-设置屏幕壁纸
  6. 梯度反向传播(CS231n课程笔记翻译)
  7. pgsql实现表字段自增——三步走
  8. 2021-09-30-THZ-前置
  9. vue 实现扫条形码与二维码 H5 兼容 苹果IOS
  10. 工艺路线和工序有差别吗_做为一名机械人,你知道机械加工工艺的流程吗?