python list元素换位置_我在码歌坚持的第九天,Python里的字典

909492dc95cab11a7e44fc3c91e58043.png

缘起上文,正式进入,搭建自己Python体系构造--列表

今日进入字典,一起来看。

二、 字典 Dictionary

字典是一种有序的数据结构,可以存放多种类型的数据,其他语言中就是 Map 映射。是一种键值对存储形式的容器。键值之间使用:分割,多个键值之间使用逗号分割,所有的键值对包裹在一对大括号中{}。字典中元素没有顺序,可以通过键定位值。

1. 特点

元素为键值对,作为键,类型必须是不可改变的类型,比如字符串,字面值,元组等。若是键存在了,赋值就会覆盖之前对应的值。和 list 比较,dict 有以下几个特点:
1)查找和插入的速度极快,不会随着 key 的增加而增加,内部使用 hash 算法定位。
2)需要占用大量的内存,内存浪费多。dict 是空间来换时间,而 list 则是时间换空间。

2. 构建

1) 、字面 值

>>> 

注意:键必须是不可变的,如 字符串、数字、元组

>>> 

2) 、构造函数

使用 dict()构造函数构建

dict([key1=value2,...,keyn=valuen])
dict([[(key1,value1),...,(keyn,valuen)]])

注意:最外面的中括号为列表符号,内部的中括号为可选符号。

>>> dict_name=dict(name='dachui',age=18)
>>> dict_name
{'name': 'dachui', 'age': 18}
>>> len(dict_name)
2
>>> dict_name2=dict([('name','zs'),('age',18),('addr','杭州')])
>>> dict_name2
{'name': 'zs', 'age': 18, 'addr': ' 杭州 '}

或借助 zip 函数构建

>>> dict_name3 = dict(zip(['name','age','addr'],['dachui',18,'杭州']))
>>> dict_name3
{'name': 'dachui', 'age': 18, 'addr': ' 杭州 '}

3. 哈希算法(Hash)

Dictionary可以用在很多需要快速查找的地方,一定注意dict的键必须是不可变对象。因为在 dict 定位时,其内部要根据 key 计算 value 的存储位置,假设键可变,一旦键的值改变了,那么计算的位置就是错误的,这也就是为什么 dict 的字必须是不可变的对象了。这个通过 key 计算位置的算法就是鼎鼎大名的哈希算法(Hash)。在 Python 中,字符串、整数、元组等都是不可变的,所以可以放心地作为 key。而 list、set 是可变的,就不能作为 key。

>>> dict_name={[1]:2}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

可以使用 hash(element)方法查看 key 哈希计算后的地址。

9f4d3840fa14099a2f3ab3126ea5e934.png

4. 常用方法

查看 API,可以得到我们要的所有方法

f39572e0519678829b549254991c591b.png

接下来就是自己练习练习,如果还不够清晰,请从视频找答案。

Python--字典构建

字典之hash表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值