测试环境:python 2.7
注:学习笔记
字典定义:
1、字典,顾名思义,可以通过索引查找想要的内容(想想我们用过的新华字典)
2、与序列不同,它没有索引,不能通过索引取值,它是一种新的数据结构,我们称之为映射
3、字典中的项为键值对,成员没有特殊的顺序
4、字典的键是唯一的,可以是数字、元组、字符串这几种不可变类型之一(注:值不是唯一的)
字典的创建:
空字典:{}
1、通过键值对创建
s1 = dict(name='may') #也支持一次传入多组键值对
2、两组对应的list怎么创建字典
m1 = ['name','age']
m2 = ['may',18]
s2 = dict(zip(m1,m2))
字典的基本操作
测试字典:s3 = {'name':'may','age':18}
1、取指定键对应的值
s3['name']
2、取项数
len(s3)
3、关联一组键值对
s3['sex'] = 'female'
print s3
打印结果
{'age': 18, 'name': 'may', 'sex': 'female'}
4、删除指定key的项
del s3['name']
5、检查字典中是否含有指定key的项
'name' in s3 #返回值逻辑型
同类方法:s3.has_key('name') #python 3.0以上取消了该方法
注:返回值False/True
字典常用方法
1、清空字典
s1.clear()
s1 = {}
clear与赋值置空的区别在于前置是把申请的内存处清空,可以清空所有对该地址的引用
2、复制字典
s2 = s1.copy()
注:仅仅是值复制
3、使用key的list,初始化一个字典
key = ['name','age','sex','love']
s1 = {}.fromkeys(key)
4、get访问
s1.get('name')
s1['name']
注:存在key时,返回结果一致,不存在key时,get方法返回None,key访问会抛出错误
注2:当不存在key时,可以自定义返回值
s1.get('name','test') #不存在key时直接返回test
注3:类似方法 s1.setdefault('name','test')
返回key:name的值,当key不存在时,插入这个项,返回这个项的值
5、把字典处理成列表的相关方法
items和iteritems方法
注:列表的形式返回字典项
s3.items()
s3.iteritems()
keys和iterkeys()方法
注;列表的形式返回字典的key
s3.keys()
s3.iterkeys()
values()和itervalues()方法
注:列表的形式返回字典的值
s3.values()
s3.itervalues()
6、pop方法
删除字典中指定key的项,返回key对应的值
s1.pop('name')
7、popitem方法
随机删除字典的一个项,返回该项组成的字典
s1.popitem()