写给小白的Python之009:数据类型之字典
2018-06-18 02:18:17来源:未知 阅读 ()
导读:
1.字典
字典(dictionary)是Python中另一个非常有用的内置数据类型。 在其他语言中也称为 map。字典是一种映射类型(mapping type),它是一个无序的键 : 值对集合。关键字必须使用不可变类型,也就是说list和包含可变类型的tuple不能做关键字。在同一个字典中,关键字还必须互不相同。
字典是一个无序的数据集合,使用print函数输出字典时,通常输出的顺序和定义的顺序是不一致的!
>>> dic = {} # 创建空字典 >>> tel = {'Jack':1557, 'Tom':1320, 'Rose':1886} >>> tel {'Tom': 1320, 'Jack': 1557, 'Rose': 1886}
1.取值
>>> tel['Jack'] # 主要的操作: 通过key查询,若不存在则报错1557
在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:
>>> age = info.get('age') >>> age #'age'键不存在,所以age为None >>> type(age) <type 'NoneType'> >>> age = info.get('age', 18) # 若info中不存在'age'这个键,就返回默认值18 >>> age 18
2.增加/修改
>>> tel['Mary'] = 4127 # 若key不存在,则新增键值对;如存在,则修改键值对
3.删除
>>> tel.pop("Rose") # 删除一个键值对,若key不存在则报错.推荐使用 >>> del tel['Rose'] # 删除一个键值对
4.清空字典
>>> tel.clear() >>> del tel[[key]]. # 删除指定的元素或删除整个字典
5.合并字典
>>> ful = {"hary": 3452, "leo": 4237} # 注意:如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对 >>> tel.update(ful)
6.字典.keys()方法
返回一个包含字典所有KEY的列表.
>>> tel {'Tom': 1320, 'Jack': 1557, 'Mary': 4127} >>> list(tel.keys()) # 返回所有key组成的list ['Tom', 'Jack', 'Mary'] >>> sorted(tel.keys()) # 按key排序 ['Jack', 'Mary', 'Tom']
7.字典.values()
返回一个包含字典所有value的列表.
>>> tel.values()
[1320, 1557, 4127]
8.字典.items()
返回一个包含所有(键,值)元组的列表。
>>> tel.items() [('Tom', 1320), ('Jack', 1557), ('Mary', 4127)]
9.len()
测量字典中,键值对的个数
>>>len(tel)
3
10.字典.has_key()(Python3 已取消)
dict.has_key(key)如果key在字典中,返回True,否则返回False。
>>> tel.has_key('Jack') True
11.成员测试
>>> 'Tom' in tel # 成员测试 True >>> 'Mary' not in tel # 成员测试 False
12.字典遍历
dict = {"name": "小明", "qq": "123456", "phone": "10086"} # 迭代遍历字典 # 变量k是每一次循环中,获取到的键值对的key for k in dict: print("%s - %s" % (k, dict[k]))
提示:在实际开发中,由于字典中每一个键值对保存数据的类型是不同的,所以针对字典的循环遍历需求并不是很多。
<1> 遍历字典的key(键)
<2> 遍历字典的value(值)
<3> 遍历字典的项(元素)
<4> 遍历字典的key-value(键值对)
13.构造函数dict()
构造函数 dict() 直接从键值对sequence中构建字典,当然也可以进行推导,如下:
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]) {'jack': 4098, 'sape': 4139, 'guido': 4127} >>> {x: x**2 for x in (2, 4, 6)} {2: 4, 4: 16, 6: 36} >>> dict(sape=4139, guido=4127, jack=4098) {'jack': 4098, 'sape': 4139, 'guido': 4127}
14.应用场景
尽管可以使用 for in 遍历字典,但是在开发中,更多的应用场景是:使用 多个键值对,存储 描述一个 物体 的相关信息 —— 描述更复杂的数据信息;
将 多个字典 放在 一个列表 中,再进行遍历,在循环体内部针对每一个字典进行 相同的处理。
card_list = [ {"name": "张三", "qq": "12345", "phone": "110"}, {"name": "李四", "qq": "54321", "phone": "10086"} ] for card_info in card_list: print(card_info)
输出:
{'name': '张三', 'qq': '12345', 'phone': '110'}
{'name': '李四', 'qq': '54321', 'phone': '10086'}
15. 和 list 比较, dict 有以下几个特点:
1. 查找和插入的速度极快,不会随着 key 的增加而增加;
2. 需要占用大量的内存,内存浪费多。
而 list 相反:
1. 查找和插入的时间随着元素的增加而增加;
2. 占用空间小,浪费内存很少
要点:
1、字典是一种映射类型,它的元素是键值对。
2、字典的关键字必须为不可变类型,且不能重复。
3、创建空字典使用{ }。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash