python字典
2016-05-10 19:47
337 查看
Python中的字典是完全不同的东西:它们不是序列,而是一种映射。映射是一个其他对象的集合,但是它们是通过键而不是相对位置来存储的。实际上,映射并没有任何可靠的从左至右的顺序。它们简单地将键映射到值。字典是Python核心对象集合中的唯一的一种映射类型,也具有可变性-可以就地改变,并可以随需求增大或减小,就像列表那样。
#encoding=utf-8
D={}
D['name']='Bob'
D['job']='dev'
D['age']=40
print(D)
#encoding=utf-8
rec={'name':{'first':'Bob', 'last': 'Smith'},
'job': ['dev', 'mgr'],
'age': 40.5}
print(rec['name'])
print(rec['name']['last'])
print(rec['job'])
print(rec['job'][-1])
rec['job'].append('janitor')
print(rec)
注意这里的最后一个操作是如何扩展嵌入job列表的。因为job列表是字典所包含的一部分独立的内存,它可以自由地增加或减少。
嵌套允许直接并轻松地建立复杂的信息结构。
在python中,当最后一次引用对象后(例如,将这个变量用其他的值进行赋值),这个对象所占用的内存空间将会自动清理掉。
#encoding=utf-8
rec={'name':{'first':'Bob', 'last': 'Smith'},
'job': ['dev', 'mgr'],
'age': 40.5}
rec=0
print(rec)从技术上说,Python具有一种叫做垃圾收集的特性,在程序运行时可以清理不再使用的内存,并将你从必须管理代码中这样的细节中解放出来。在Python中,一旦一个对象的最后一次引用被移除,空间将会立即回收。
键的排序:for循环
作为映射,字典仅支持通过键获取元素。尽管这样,在各种常见的应用场合,通过调用方法,它们也支持类型特定的操作。
#encoding=utf-8
D={'a':1, 'b':2, 'c':3}
print(D)
for key in sorted(D):
print(key, '=>', D[key])
不存在的键:if测试
尽管我们能够通过给新的键赋值来扩展字典,但是获取一个不存在的键值仍然是一个错误。
in关系表达式允许我们查询字典中一个键是否存在。
#encoding=utf-8
D={'a':1, 'b':2, 'c':3}
print(D)
if not 'f' in D:
print('missing')
创建字典
访问字典的值
1. 通过键获取值
如果试图通过字典中没有的键去访问值,就会产生错误。
2. 在获取值之前先用in运算符进行测试
由于不存在的键会引发错误,因此在获取键值之前,先判断这个键是否存在。in运算符就可用于判断键的存在性。
注意:in运算符只能判断键的存在性,不能用这种办法去判断值得存在性。
3. 通过get()方法获取值
字典方法get(),该方法提供有一个内建的安全机制用以处理“通过不存在的键获取值”的情况。如果键不存在,该方法就会返回一个默认值。如果不提供默认值的话,就会得到None。
#encoding=utf-8
D={}
D['name']='Bob'
D['job']='dev'
D['age']=40
print(D)
#encoding=utf-8
rec={'name':{'first':'Bob', 'last': 'Smith'},
'job': ['dev', 'mgr'],
'age': 40.5}
print(rec['name'])
print(rec['name']['last'])
print(rec['job'])
print(rec['job'][-1])
rec['job'].append('janitor')
print(rec)
注意这里的最后一个操作是如何扩展嵌入job列表的。因为job列表是字典所包含的一部分独立的内存,它可以自由地增加或减少。
嵌套允许直接并轻松地建立复杂的信息结构。
在python中,当最后一次引用对象后(例如,将这个变量用其他的值进行赋值),这个对象所占用的内存空间将会自动清理掉。
#encoding=utf-8
rec={'name':{'first':'Bob', 'last': 'Smith'},
'job': ['dev', 'mgr'],
'age': 40.5}
rec=0
print(rec)从技术上说,Python具有一种叫做垃圾收集的特性,在程序运行时可以清理不再使用的内存,并将你从必须管理代码中这样的细节中解放出来。在Python中,一旦一个对象的最后一次引用被移除,空间将会立即回收。
键的排序:for循环
作为映射,字典仅支持通过键获取元素。尽管这样,在各种常见的应用场合,通过调用方法,它们也支持类型特定的操作。
#encoding=utf-8
D={'a':1, 'b':2, 'c':3}
print(D)
for key in sorted(D):
print(key, '=>', D[key])
不存在的键:if测试
尽管我们能够通过给新的键赋值来扩展字典,但是获取一个不存在的键值仍然是一个错误。
in关系表达式允许我们查询字典中一个键是否存在。
#encoding=utf-8
D={'a':1, 'b':2, 'c':3}
print(D)
if not 'f' in D:
print('missing')
创建字典
#创建字典 geek={"404":"page not found", "uninstalled":"being fired"} #通过键获取值 print(geek["404"])输出:
访问字典的值
1. 通过键获取值
如果试图通过字典中没有的键去访问值,就会产生错误。
#创建字典 geek={"404":"page not found", "uninstalled":"being fired"} #通过键获取值 print(geek["404"])输出:
print(geek['cs'])
2. 在获取值之前先用in运算符进行测试
由于不存在的键会引发错误,因此在获取键值之前,先判断这个键是否存在。in运算符就可用于判断键的存在性。
#创建字典 geek={"404":"page not found", "uninstalled":"being fired"} #通过键获取值 print(geek["404"])输出:
if "cs" in geek:
print(geek['cs'])
else:
print("I have no idea.")
注意:in运算符只能判断键的存在性,不能用这种办法去判断值得存在性。
3. 通过get()方法获取值
字典方法get(),该方法提供有一个内建的安全机制用以处理“通过不存在的键获取值”的情况。如果键不存在,该方法就会返回一个默认值。如果不提供默认值的话,就会得到None。
#创建字典 geek={"404":"page not found", "uninstalled":"being fired"} #通过get()方法获取值 print(geek.get("cs","I have no ides")) print(geek.get("cs"))输出:
相关文章推荐
- python in learning math
- python共享引用
- Python学习日记.1
- [Python] RiceRocks游戏 Mini-project #8
- Python 生成器 generator
- python中的 list (列表)append()方法 与extend()方法的用法 和 区别
- 在Ubuntu 14.04 64bit上安装numpy和matplotlib库
- 模块os
- [LINK]Python服务器开发一:python基础
- Python简介和入门
- Etag 笔记
- python xmlrpc实现二进制文件传输的代码,简单的远程调用
- 『Python学习』海龟法则学习
- python学习笔记1——安装python
- python 结巴分词(jieba)学习
- 模块random
- Python再接触第二次
- Python下使用OpenCV教程(图像的载入、显示和保存)
- Python中使用SQLAlchemy连接Mysql数据库2(多表连接操作)
- Python3简单验证码识别