07python字典

1、字典的介绍

  • Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

2、如果用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用Python写一个dict如下:


    >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
	>>> d['Michael']
	95

3、

  • 件开发中的字典 变量info为字典类型:
    info = {‘name’:‘班长’, ‘id’:100, ‘sex’:‘f’, ‘address’:‘地球亚洲中国北京’}
    说明: 字典和列表一样,也能够存储多个数据 列表中找某个元素时,是根据下标进行的
    字典中找某个元素时,是根据’名字’(就是冒号:前面的那个值,例如上面代码中的’name’、‘id’、‘sex’)
    字典的每个元素由2部分组成,键:值。例如 ‘name’:‘班长’ ,'name’为键,'班长’为值 若访问不存在的键,则会报错:

     >>> info['age'] Traceback (most recent call last):  
      File "<stdin>", line 1, in <module> KeyError: 'age'

  • 在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:

        >>> age = info.get('age')
    	>>> age #'age'键不存在,所以age为None>>> type(age)
    	<type 'NoneType'>
    	>>> age = info.get('age', 18) # 若info中不存在'age'这个键,就返回默认值18
   		>>> age
    	18

4、字典常见操作
<1>修改元素
字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改


    info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
	newId = input('请输入新的学号')
	info['id'] = int(newId)
	print('修改之后的id为%d:'%info['id']

<2>添加元素


    info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}
	# print('id为:%d'%info['id'])#程序会终端运行,因为访问了不存在的键
	newId = input('请输入新的学号')
	info['id'] = newId
	print('添加之后的id为:%d'%info['id'])

<3>删除元素

  • demo:del删除指定的元素

    info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}
	print('删除前,%s'%info['name'])
	del info['name']
	print('删除后,%s'%info['name'])

  • demo:del删除整个字典

    info = {'name':'monitor', 'sex':'f', 'address':'China'}
	print('删除前,%s'%info)
	del info
	print('删除后,%s'%info)

  • demo:clear清空整个字典
    5、字典常见函数
    <1>len()
    测量字典中,键值对的个数
    <2>keys == map.keySet()
    返回一个包含字典所有KEY的列表
    <3>values
    返回一个包含字典所有value的列表
    <4>items
    返回一个包含所有(键,值)元祖的列表
    <5>has_key (python2.7版本) == in 条件表达式
    dict.has_key(key)如果key在字典中,返回True,否则返回False

6、总结:
1、请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
2、和list比较,dict有以下几个特点:
1)查找和插入的速度极快,不会随着key的增加而变慢;
2)需要占用大量的内存,内存浪费多。
3)而list相反:查找和插入的时间随着元素的增加而增加;占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
3、dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值