字典操作

字典一种key - value 的数据类型

  1. 特性:
  2. 无顺序
  3. 去重
  4. 查询速度快,比列表快多了
  5. 比list占用内存多

语法:

info = {
'abc001': "Ben",
'abc002': "Mike",
'abc003': "John",
}

字典的特性

  • 字典是无序的
  • key必须是唯一的

查找

>>> info = {
... 'abc001': "Ben",
... 'abc002': "Mike",
... 'abc003': "John",
... }
>>>
>>>
>>> print(info.get("abc001"))
Ben
>>>
>>> print("abc003"in info) // 标准用法
True
>>> // 反馈True为查找到 ,false为查不到

添加

info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
}
>>> info['abc004']='Tom' //添加
>>> print(info)
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
>>>

取值

>>>
>>> info
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
>>>
>>>
>>> print(info['abc001'])
Ben
>>>
>>>
>>> print(info['abc004'])
Tom
>>>

另一种字典取值方式

get()

>>>
>>> a = {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
>>>
>>> a.get('abc001')
'Ben' >>> a.get('abc002')
'Mike'
>>>

删除

>>> info
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
>>>
>>> info.pop("abc004") # 标准删除
'Tom'
>>> info
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John'} # 不加参数默认删除最后一个值
>>> d = [1,2,3,4,5]
>>>
>>> d.pop()
5
>>> d
[1, 2, 3, 4] >>>
>>> info.popitem() # 随机删除
('abc003', 'John')
>>> info
{'abc001': 'Ben', 'abc002': 'Mike'}
>>>
# del 是Python通用删除方法
>>> del info['abc001']
>>> info
{'abc002': 'Mike'}
>>>

循环dict

info = {
'abc001': "Ben",
'abc002': "Mike",
'abc003': "John"
}
//字典循环
for i in info:
print(i,info[i])

其他

keys values update items

##keys

>>> info = {
... 'abc001': "Ben",
... 'abc002': "Mike",
... 'abc003': "John"
... }
>>> print(info)
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John'}
>>> #values
>>> print(info.values()) #把所有的值打印不包括Key
dict_values(['Ben', 'Mike', 'John']) #keys
>>> print(info.keys()) #把所有Key打印出来,不包括values
dict_keys(['abc001', 'abc002', 'abc003'])
>>>
>>> #update
>>> b ={
... 'stu1101': "alex",
... 1:2,
... 3:4
... }
>>> info.update(b) #合并字典,没有的创建新的,存在的覆盖
>>> print(info)
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'stu1101': 'alex', 1: 2, 3
: 4}
>>>
>>> #items
>>> print(info.items()) #字典转换列表
dict_items([('abc001', 'Ben'), ('abc002', 'Mike'), ('abc003', 'John'), ('stu1101
', 'alex'), (1, 2), (3, 4)])
>>>

python3 循环字典两种方法

items()

>>> D = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.
taobao.com'} >>> for k,v in D.items():
... print(k,v)
... >>> D.items()
dict_items([('Google', 'www.google.com'), ('Runoob', 'www.runoob.com'), ('taobao
', 'www.tao.com')]) # 执行结果
Google www.google.com
Runoob www.runoob.com
taobao www.taobao.com

这种方法,大数据时候不要用,因为要把字典转换成一个列表元组,对占用性能。

推荐循环字典方法:

>>> for i in D:
... print(i,D[i])
... # 执行结果
Google www.google.com
Runoob www.runoob.com
taobao www.tao.com

python 基础 字典的更多相关文章

  1. python基础--字典

    Python基础--字典 字典的常用函数: dict.clear( )--->无任何返回值 说明: 清除字典内的所有的元素 语法: In [5]: dict.clear? Type: metho ...

  2. python基础—字典

    阅读文本需要3分钟,不建议跳读 节目清单 字典是python中最重要的数据类型,字典由“键-值”对组成的集合,字典中的“值”通过“键”来引用.这里将介绍字典的定义.访问.排序等功能. 字典的创建 字典 ...

  3. python基础——字典(dict)

    字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 . dict1 = {} ...

  4. Python基础:字典(dict)与集合(set)

    查找场景下与列表的性能对比 字典与集合之所以高效的原因是:内部结构都是一张哈希表. 平均情况下插入.查找和删除的时间复杂度为 O(1). 假设有数量100,000的产品列表: import time ...

  5. python基础——字典

    字典内置函数&方法 Python字典包含了以下内置函数: 序号 函数及描述 1 cmp(dict1, dict2)比较两个字典元素. 2 len(dict)计算字典元素个数,即键的总数. 3 ...

  6. Python基础--字典:当索引不好用时

    当列表或是元组的索引不能达到我们的目的时,我们想到了还有一种序列,即字典. 创建 字典 由多个键以及相应的值构成的键-值对组成. 键唯一.值能够不唯一 phonebook = {'xidada':'1 ...

  7. Python基础——字典和有序字典

    字典 说明: 在 Python 中, 字典 是一系列 键 — 值对 .每个键都与一个值相关联,你可以使用键来访问与之相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将任何 Pyt ...

  8. python基础——字典dict

    1.概念: (1)字典dict,是一系列的键—值对.每个键key都和一个值value相映射.(字典是python中唯一的映射类型.) (2)每一项item,是一个键值对key—value对. (3)键 ...

  9. Python基础——字典(dict)

    由键-值对构建的集合. 创建 dic1={} type(dic1) dic2=dict() type(dic2) 初始化 dic2={'hello':123,'world':456,'python': ...

随机推荐

  1. 《计算机图形学》2.1.1 刷新式CRT

    图形系统一般使用显示器作为其输出设备. 大部分视频监视器的操作是基于标准的阴极射线管(cathode-ray tube,CRT)设计的,但是也已经出现了其他一些技术,并且固态监视器终究要占据主导地位. ...

  2. Java动态代理的实现机制

    一.概述 代理是一种设计模式,其目的是为其他对象提供一个代理以控制对某个对象的访问,代理类负责为委托类预处理消息,过滤消息并转发消息以及进行消息被委托类执行后的后续处理.为了保持行为的一致性,代理类和 ...

  3. iOS - 转场动画

    苹果在 iOS7 定制了 ViewController 的切换效果 一 在iOS5和iOS6之前,ViewController的切换主要有4种 Push/Pop,NavigationViewCotnr ...

  4. 在MyEclipse(2015)中上传项目到github的步骤(很详细)

    (图文)在MyEclipse(2015)中上传项目到github的步骤(很详细) git|smartGit使用详解 SmartGit使用教程

  5. open-falcon之agent

    功能 采集数据,解析数据,上报数据至transfer 基本涵盖了系统层面监控指标,直接将数据转换为metricValue形式,上报至transfer 支持插件采集,代码插件放可受git管理,放置在pl ...

  6. <转>查看linux占用内存/CPU最多的进程

    转自 http://beginman.cn/page26/ 查使用内存最多的10个进程 ps -aux | sort -k4nr | head -n 10 或者top (然后按下M,注意大写) 查使用 ...

  7. 【图算法】Dijkstra算法及变形

    图示: 模版: /* Dijkstra计算单源最短路径,并记录路径 m个点,n条边,每条边上的权值非负,求起点st到终点et的最短路径 input: n m st et 6 10 1 6 1 2 6 ...

  8. SharpGL学习笔记(九) OpenGL的光照模型, 术语解释

    在3D场景中,每个像素最终显示出来的颜色都是经过大量计算而得到的,其中一些计算是依赖于场景中的光照以及场景中物体对光线的反射和吸收情况. 例如,对于一个红色的物体, 在白色光(白光是红光,绿光和蓝光等 ...

  9. mysql explain分析

    通过explain可以知道mysql是如何处理语句,分析出查询或是表结构的性能瓶颈.通过expalin可以得到: 1. 表的读取顺序 2.表的读取操作的操作类型 3.哪些索引可以使用 4. 哪些索引被 ...

  10. Apache Server Status详解

    Apache的日志如果靠分析日志或者查看服务器进程来监视Apache运行状态的话,比较繁冗.不过在Apache 1.3.2及以后的版本中就自带一个查看Apache状态的功能模块server-statu ...