字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

dict= {key1: value1, key2: value2}

1.键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不用是唯一的,所以值可以是相同的。

2.值可以取任何数据类型,但键必须不可变,所以可以用数字,字符串或元组充当,所以用列表,集合就不行,但却也可以用函数,对象。

访问字典里的值

把相应的键放入熟悉的方括弧,如下实例:

dict = {'Name': 'Sora', 'Age': 17, 'Class': 'First'}print( dict['Name'], dict['Age'])

如果用字典里没有的键访问数据,会抛出Keyerror异常,如下:

dict['simon']:

Traceback (most recent call last):

File"test.py", line 5, in

print "dict['simon']:", dict['simon']

KeyError:'simon'

修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

dict['Name']='Simon' #字典已有Name的key,所以是更改操作

dict['gender']='male' #字典不存在gender的key,所以是增加键值对操作

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显示删除一个字典用del或者pop命令,但需要注意的是del无返回值,pop会返回被删除的key所对应的value,如下实例:

dict = {'Name': 'Sora', 'Age': 17, 'Class': 'First'}

del dict['Class'] v=dict.pop('Name')print(dict,v)

输出: {'Age': 17} Sora

字典内置函数&方法

Python字典包含了以下内置函数:

cmp(dict1,dict2) #比较两个字典元素,如果两个字典的元素相同返回0,如果字典dict1大于字典dict2返回1,如果字典dict1小于字典dict2返回-1。

len(dict) #计算字典元素个数,即键的总数。

str(dict) #输出字典可打印的字符串表示。

type(dict) #返回输入的变量类型,如果变量是字典就返回字典类型。

Python字典包含了以下内置方法:

dict.clear() ##删除字典内所有元素

dict.copy() ##返回一个字典的浅复制

dict.fromkeys(seq[, val]) #创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值

dict.get(key, default=None) #返回指定键的值,如果值不在字典中返回default值

dict.has_key(key) #如果键在字典dict里返回true,否则返回false

dict.items() #以列表返回可遍历的(键, 值) 元组数组

dict.keys() #以列表返回一个字典所有的键

dict.setdefault(key, default=None)和get() #类似, 但如果键不存在于字典中,将会添加键并将值设为default

dict.update(dict2) #把字典dict2的键/值对更新到dict里

dict.values() #以列表返回字典中的所有值

pop(key[,default]) #删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

popitem() #返回并删除字典中的最后一对键和值。

in 操作符

Python 字典 in 操作符用于判断 键 是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false。

而 not in 操作符刚好相反,如果键在字典 dict 里返回 false,否则返回 true。

dict = {'Name': 'nb', 'Age': 17}

# 检测键 Age 是否存在if 'Age' indict:

print("键 Age 存在")else:

print("键 Age 不存在")

注意:

字典在被迭代时,不可以直接对其元素进行删除或者增加(但可以修改):

dict = {'Name': 'Sora', 'Age': 17, 'Class': 'First'}for i,k indict.items():del dict[i] #dict.pop(i)

print(dict)

报错(大意是字典长度在迭代时被更改): # 由此也验证,字典在迭代时是不能删或者增的

RuntimeError: dictionary changed size during iteration

如果在迭代中删除字典的元素, 可使用以下方法:

dict = {'Name': 'Sora', 'Age': 17, 'Class': 'First'}for key inlist(dict):

dict.pop(key)print(dict)

输出:

{}

python 字典长度_python字典详解相关推荐

  1. python获取字典长度_python字典操作

    python中字典用于存放具有映射关系的数据 字典中的key不能相同 字典中的key必须为不可变类型,所以可以是数.字符串.元组, 但不能是列表 创建字典 通过{}创建 dict1 = {'eric' ...

  2. python获取数据类型_python数据类型详解

    python数据类型:int.string.float.boolean 可变变量:list 不可变变量:string.元组tuple 1.list list就是列表.array.数组 列表根据下标(0 ...

  3. python 字典长度_python字典可以容纳多少个元素?

    正如@Leifingson和@Tim所提到的,这种行为取决于以前做过的事情.为了说明内存消耗,我将使用以下示例:Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) ...

  4. python pexpect输出_Python Pexpect详解

    背景介绍 Expect 程序主要用于人机对话的模拟,就是那种系统提问,人来回答 yes/no ,或者账号登录输入用户名和密码等等的情况.因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现.最初 ...

  5. python模块讲解_python模块详解 | filecmp

    原博文 2020-04-30 14:33 − 简介: filecmp是python内置的一个模块,用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单 两个主要的方法: filecmp.cm ...

  6. python正则匹配_python 正则表达式详解

    正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...

  7. python模块讲解_python模块详解

    使用python时,常常会涉及到库的调用,这就需要掌握模块的基本知识. 本文分为如下几个部分概念说明 模块的简单调用 包的导入 特殊的__init__.py文件 导入模块的搜索路径 __all__ 绝 ...

  8. python fields函数_Python函数详解

    # ------------------------------------一等函数------------------------------------ # 龟叔: 虽然我把函数定为一等对象,但是 ...

  9. [转载] 递归函数python基例_python递归函数详解 python 递归函数使用装饰器

    参考链接: Python递归 移动宽带检查显示 CRM,radius状态不一致是怎么回事啊?您可以把电信宽带猫等设备重启试一下,如果仍然不行,可以拨打10000号请工作人员帮您查看.处理. 电信宽带诊 ...

最新文章

  1. 深度学习中的图像分割:方法和应用
  2. linux 打包压缩工具
  3. DynamicList
  4. 70后、80后、90后的区别(很有意思)
  5. Android实现文字一个一个显示出来
  6. Java处理文件BOM头的方式推荐
  7. java5错误_Error:java: 错误: 不支持发行版本 5
  8. MySQL 索引失效案例
  9. MapReduce模型、大数据与数据挖掘、云计算的关系
  10. DynDNS免费动态域名解析
  11. MATLAB中的pause用法,pause使用方法 C语言 pause()函数问题
  12. Softmax和关于它的交叉熵损失函数详细求导过程
  13. NANDFLASH与PSRAM
  14. HDU 5234 DP背包
  15. 使用 easypoi 导出带三级下拉联动的 excel
  16. Eclipse中Java项目转化为Java Web项目
  17. Java实现神经网络方法
  18. matlab人脸识别样本库建立,facenet 人脸识别(二)——创建人脸库搭建人脸识别系统...
  19. 毕业设计 stm32智能运动计步器 - 物联网 嵌入式 单片机
  20. 第九章-项目人力资源管理

热门文章

  1. rdkitpython | 化合物去盐
  2. 29【源码】数据可视化大屏:基于 Echarts + Python Flask 实现的32-9超宽大屏 - 企业综合信息
  3. .NET 程序员-开源项目【藏】
  4. @开发者,一份微软官方Github上发布的开源项目清单等你签收
  5. 关于sizeof函数、memcpy函数以及结构体关于指针的问题汇总
  6. 俺有个野蛮女友(转)
  7. [转]异步编程与响应式框架
  8. java/php/net/python火车票售票系统设计
  9. 【C++】打怪小游戏
  10. C语言:自增运算符和自减运算符