python 字典长度_python字典详解
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 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字典详解相关推荐
- python获取字典长度_python字典操作
python中字典用于存放具有映射关系的数据 字典中的key不能相同 字典中的key必须为不可变类型,所以可以是数.字符串.元组, 但不能是列表 创建字典 通过{}创建 dict1 = {'eric' ...
- python获取数据类型_python数据类型详解
python数据类型:int.string.float.boolean 可变变量:list 不可变变量:string.元组tuple 1.list list就是列表.array.数组 列表根据下标(0 ...
- python 字典长度_python字典可以容纳多少个元素?
正如@Leifingson和@Tim所提到的,这种行为取决于以前做过的事情.为了说明内存消耗,我将使用以下示例:Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) ...
- python pexpect输出_Python Pexpect详解
背景介绍 Expect 程序主要用于人机对话的模拟,就是那种系统提问,人来回答 yes/no ,或者账号登录输入用户名和密码等等的情况.因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现.最初 ...
- python模块讲解_python模块详解 | filecmp
原博文 2020-04-30 14:33 − 简介: filecmp是python内置的一个模块,用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单 两个主要的方法: filecmp.cm ...
- python正则匹配_python 正则表达式详解
正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...
- python模块讲解_python模块详解
使用python时,常常会涉及到库的调用,这就需要掌握模块的基本知识. 本文分为如下几个部分概念说明 模块的简单调用 包的导入 特殊的__init__.py文件 导入模块的搜索路径 __all__ 绝 ...
- python fields函数_Python函数详解
# ------------------------------------一等函数------------------------------------ # 龟叔: 虽然我把函数定为一等对象,但是 ...
- [转载] 递归函数python基例_python递归函数详解 python 递归函数使用装饰器
参考链接: Python递归 移动宽带检查显示 CRM,radius状态不一致是怎么回事啊?您可以把电信宽带猫等设备重启试一下,如果仍然不行,可以拨打10000号请工作人员帮您查看.处理. 电信宽带诊 ...
最新文章
- 深度学习中的图像分割:方法和应用
- linux 打包压缩工具
- DynamicList
- 70后、80后、90后的区别(很有意思)
- Android实现文字一个一个显示出来
- Java处理文件BOM头的方式推荐
- java5错误_Error:java: 错误: 不支持发行版本 5
- MySQL 索引失效案例
- MapReduce模型、大数据与数据挖掘、云计算的关系
- DynDNS免费动态域名解析
- MATLAB中的pause用法,pause使用方法 C语言 pause()函数问题
- Softmax和关于它的交叉熵损失函数详细求导过程
- NANDFLASH与PSRAM
- HDU 5234 DP背包
- 使用 easypoi 导出带三级下拉联动的 excel
- Eclipse中Java项目转化为Java Web项目
- Java实现神经网络方法
- matlab人脸识别样本库建立,facenet 人脸识别(二)——创建人脸库搭建人脸识别系统...
- 毕业设计 stm32智能运动计步器 - 物联网 嵌入式 单片机
- 第九章-项目人力资源管理
热门文章
- rdkitpython | 化合物去盐
- 29【源码】数据可视化大屏:基于 Echarts + Python Flask 实现的32-9超宽大屏 - 企业综合信息
- .NET 程序员-开源项目【藏】
- @开发者,一份微软官方Github上发布的开源项目清单等你签收
- 关于sizeof函数、memcpy函数以及结构体关于指针的问题汇总
- 俺有个野蛮女友(转)
- [转]异步编程与响应式框架
- java/php/net/python火车票售票系统设计
- 【C++】打怪小游戏
- C语言:自增运算符和自减运算符