Python内置数据类型之Dict
2016-03-02 11:25
253 查看
Dict字典,是另一种可变类型的容器模型,可以存储任意类型对象。
1、字典的创建
字典的每个键值对(key->value)使用冒号(:)分隔,键值对之间使用逗号(,)分隔,使用花括号{}包含元素。键必须是唯一的,值可以不唯一。
值可以选取任意数据类型,但键必须是不可变的,如数字、字符串、元组。下面是一个字典的实例:
可以简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key:
9102
如果方括号中的key存在就会返回对应的value,如果不存在则会报错:KeyError。
有两种方法可以避免KeyError:
(1)在使用key访问字典之前先判断一下key是否存在:
修改字典的方法有添加新的键值对,修改已有key的value和删除已有的键值对:
(1)添加新的键值对:
{'Alice': '0000', 'Beth': '9102', 'Cecil': '3258','Tom':'1234'}
4、删除字典元素
可以删除字典元素,清空字典,还可以删除整个字典:
(1)dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
由于字典是按key查找元素的,因此字典中的key不能重复。
(2)dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样。也就是说,字典是无序的,不能用来存储有序的集合。
(3)dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数还有元组都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。不过value是可变的。
6、字典的遍历
dict也是一个集合,所以它的遍历和list类似,一个for循环就可以遍历:
7、字典的迭代
字典类型有几个内置函数可以用来迭代字典元素:keys()、values()、items():
keys返回字典的所有键构成的list,values返回所有值构成的list,item返回由键值对组成的list:
现在就可以这样迭代字典了:
8、Python内置函数
1、字典的创建
字典的每个键值对(key->value)使用冒号(:)分隔,键值对之间使用逗号(,)分隔,使用花括号{}包含元素。键必须是唯一的,值可以不唯一。
值可以选取任意数据类型,但键必须是不可变的,如数字、字符串、元组。下面是一个字典的实例:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}还可以创建一个空字典:
dict={}2、字典的访问
可以简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key:
print dict['Beth']结果:
9102
如果方括号中的key存在就会返回对应的value,如果不存在则会报错:KeyError。
有两种方法可以避免KeyError:
(1)在使用key访问字典之前先判断一下key是否存在:
if 'Beth' in dict: print dict['Beth'](2)使用Dict本身提供的get方法,当key不存在时返回None:
print dict.get('Tom') #None3、修改字典
修改字典的方法有添加新的键值对,修改已有key的value和删除已有的键值对:
(1)添加新的键值对:
dict['Tom']='1234' #add new entry dict['Alice']='0000' #update existing entry print dict结果:
{'Alice': '0000', 'Beth': '9102', 'Cecil': '3258','Tom':'1234'}
4、删除字典元素
可以删除字典元素,清空字典,还可以删除整个字典:
del dict['Tom'] #删除某一个条目 dict.clear() #清空字典,但dict还存在,是一个空字典 del dict #显示删除字典,dict不存在,再次访问会出错5、字典的特点
(1)dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
由于字典是按key查找元素的,因此字典中的key不能重复。
(2)dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样。也就是说,字典是无序的,不能用来存储有序的集合。
(3)dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数还有元组都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。不过value是可变的。
6、字典的遍历
dict也是一个集合,所以它的遍历和list类似,一个for循环就可以遍历:
dict = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } for key in dict: print key+":"+str(dict[key])结果:
Lisa:85 Adam:95 Bart:59
7、字典的迭代
字典类型有几个内置函数可以用来迭代字典元素:keys()、values()、items():
keys返回字典的所有键构成的list,values返回所有值构成的list,item返回由键值对组成的list:
现在就可以这样迭代字典了:
for key,value in dict: print key,":",value结果:
Lisa:85 Adam:95 Bart:59
8、Python内置函数
相关文章推荐
- Python设计模式编程中Adapter适配器模式的使用实例
- Python打造出适合自己的定制化Eclipse IDE
- python3 encode decode base64
- Python 字符串 String 内建函数大全(1)
- 设计模式中的原型模式在Python程序中的应用示例
- Scrapy学习-1
- 深入解析Python设计模式编程中建造者模式的使用
- Python学习十四:filter()
- python版线段树
- Python入门教程 超详细1小时学会Python
- Python爬虫入门七之正则表达式
- Python爬虫入门六之Cookie的使用
- 实验室吃饭记账系统web
- 举例讲解Python设计模式编程中对抽象工厂模式的运用
- Python爬虫入门五之URLError异常处理
- Python内置数据类型之Tuple
- Python爬虫入门四之Urllib库的高级用法
- Python爬虫入门三之Urllib库的基本使用
- Python爬虫入门二之爬虫基础了解
- Python爬虫入门一之综述