python基础知识之字典的建立、简单操作、格式化字符串
2017-01-09 17:51
926 查看
1.字典的创立和使用
映射是通过名字来引用值的数据结构,字典是python中唯一内建的映射类型。字典有键和对应的值构成键-值对(又叫项),键和值用冒号 (:) 隔开,项之间用逗号 (,) 隔开,整个字典用大括号括起来,空字典则为{}。字典中的值没有特殊的顺序,但是存放在一个特定的键下,键可以是数字、字符串、元组。>>> phonebook={'wang':'1234','cui':'2345'} >>>
我们可以用列表建立一个小型的电话号码数据库,如下
>>> name=['wang','cui'] >>> number=['000','111'] >>> number[name.index('cui')] '111' >>>
虽然这种办法可行,但是不实用。
1.1 dict 函数
法 1:用 dict 函数,通过(键,值)对的序列建立字典。
>>> items=[('name','wang'),('number','1234')] >>> d=dict(items) >>> d {'name': 'wang', 'number': '1234'} >>> d['name'] 'wang' >>> items=[('name','wang'),('number','1234'),('age','25')] >>> d {'name': 'wang', 'number': '1234','age':'25'} >>>
法2:
dict 函数通过关键字参数创建字典,如下
>>> d=dict(name='wang',number='1234') >>> d {'number': '1234', 'name': 'wang'} >>>
1.2 基本的字典操作
字典的基本行为与列表类似:- len(d) 返回字典中的项的数量;
- d[k] 返回关联到键 k 上的数值;
- d[k] =v 将值 v 关联到键 k 上;
- del d[k] 删除键为 k 的项;
- k in d 检查 d 中是否含有键为 k 的项;
>>> d=dict(name='wang',number='1234') >>> d {'number': '1234', 'name': 'wang'} >>>len(d)
2
>>> d['number']
'1234'
>>> d['age']=25
>>> d
{'age': 25, 'number': '1234', 'name': 'wang'}
>>> del d['age']
>>> d
{'number': '1234', 'name': 'wang'}
>>> 'age' in d
False
>>> 'name' in d
True
>>> 'number' in d
True
>>>
1.2.1 字典和列表的区别
键类型:字典的键是唯一的,但是可以为任意不可变类型,例如整型、浮点型、字符串、元组。自动添加:即使键起初在字典中不存在,也可以通过给它赋值,建立新的项。
成员资格:字典中的成员资格查找的是键,不是值,列表中的是查找值,而不是索引。
>>> x=[] >>> x[42]='bar' Traceback (most recent call last): File "<pyshell#24>", line 1, in <module> x[42]='bar' IndexError: list assignment index out of range >>> x={} >>> x['age']='25' >>> x {'age': '25'} >>>
字典示例:
#一个简单的数据库 #字典使用人名作为键。每个人用另一个字典来表示,其键‘phone’和‘addr’分别表示他们的电话号码和地址 people={ 'Alice':{ 'phone':'2341', 'addr':'foo drive 23' }, 'Beth':{ 'phone':'9012', 'addr':'bar street 43' }, 'Cecil':{ 'phone':'3158', 'addr':'baz avenue 90' } } #针对电话号码和地址使用的描述性标签,会打印输出的时候用到 labels={ 'phone':'phone number', 'addr':'address' } name=raw_input('Name:') #查找电话号码还是地址 request=raw_input('Phone number(p) or address(a)?') #使用正确的键 if request =='p':key='phone' if request =='a':key='addr' #如果名字是字典中的有效键才打印信息 if name in people:print "%s's %s is %s." %\ (name,labels[key],people[name][key] ab29 )
运行结果为:
>>> ================ RESTART================ >>> Name:Cecil Phone number(p) or address(a)?p Cecil's phone number is 3158. >>> ================= RESTART =============== >>> Name:Beth Phone number(p) or address(a)?a Beth's address is bar street 43. >>>
1.3 字典的格式化字符串
在每个转换说明符中的 % 后面,可以加上键(用圆括号括起来),后面再跟上其它说明元素。>>> phonebook={'wang':'1234','cui':'2345'} >>>"wang 's number is %(wang)s " % phonebook
"wang 's number is 1234 "
>>> "wang 's number is % (wang)s" % phonebook
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
"wang 's number is % (wang)s" % phonebook
ValueError: unsupported format character '(' (0x28) at index 20
>>> "wang 's number is %('wang')s " % phonebook
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
"wang 's number is %('wang')s " % phonebook
KeyError: "'wang'"
>>>
注意:%(键)s ,中只是用键名,而且 % 后面跟的字符之间没有空格。
相关文章推荐
- 菜鸟的Python之路--基础知识(字典的基本操作)
- python-基础知识之字典操作
- 【Python基础】之对字典进行排序操作(sort by the values of dict)
- python操作MongoDB基础知识
- 基础知识(八)python文件操作相关函数
- Python爬虫----基础知识(简单爬虫架构、URL管理器和实现方法)
- 树,二叉树的一些基础知识以及二叉树的建立,存储操作
- 【iOS-Cocos2d游戏开发之二十】精灵的基础知识点总汇(位图操作/贴图更换/重排z轴等)以及利用CCSprite与CCLayerColor制作简单遮盖层!
- python基础教程之字典操作详解
- python 基础知识四、字典
- python基础(文件输入/输出 内建类型 字典操作使用方法)
- Python dict字典 基础知识篇
- 【iOS-Cocos2d游戏开发之二十】精灵的基础知识点总汇(位图操作/贴图更换/重排z轴等)以及利用CCSprite与CCLayerColor制作简单遮盖层!
- python 基础操作知识整理总结
- Python中字典的基础知识归纳小结
- python基础知识——内置数据结构(字典)
- python 基础操作知识整理总结
- Python3基础知识(二)---- 元组、列表、字典、文件
- 基础知识(十五)python简单http服务器
- python基础知识-列表,元组,字典