|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
字典- 字典使用大括号
- 字典属于映射类型,不属于序列类型(字符串,列表,元组属于序列类型)
- 字典使用中括号进行索引
>>> dict1 = {10:'one' , 20:'two' , 30:'three'}
>>> dict1[20]
'two'
冒号前为key(键),冒号后为value(值)。通过中括号索引key,打印value - 使用dict创建字典(dict只有一个参数,其中dict内容,可以使用元组也可使用列表,只要构成映射关系即可)
>>> dict2 = dict(((1,'z'),(2,'h'),(3,'a'),(4,'n'),(5,'g')))
>>> dict2
{1: 'z', 2: 'h', 3: 'a', 4: 'n', 5: 'g'}
- 直接使用key=value的方式创建字典
>>> dict3 = dict(a = '1' , b = '2')
>>> dict3
{'a': '1', 'b': '2'}
不能将key用引号括起来 >>> dict3 = dict('a' = '1' , b = '2')
SyntaxError: keyword can't be an expression
因为给了key是a之后,就会把a以字符串的形式包裹起来 - 若直接给字典的键赋值,如果键本来就在字典里面存在,则改写键所对应的值;如果键不存在,则创建一个新的键,并为它赋值
>>> dict3['a']
'1'
>>> dict3['a'] = '12345'
>>> dict3
{'a': '12345', 'b': '2'}
>>> dict3['c'] = '234'
>>> dict3
{'a': '12345', 'b': '2', 'c': '234'}
- 字典的内建函数
- fromkeys()创建并返回一个新的字典,有两个参数fromkeys(s[,v]),s是键值,v(可选参数,默认为none)是键所对应的值
>>> dict1 = {}
>>> dict1.fromkeys((1,2,3))
{1: None, 2: None, 3: None}
>>> dict1.fromkeys((1,2,3),'a')
{1: 'a', 2: 'a', 3: 'a'}
不能使用以下方式试图给每个key一次赋值 >>> dict1.fromkeys((1,2,3),('a','b','c'))
{1: ('a', 'b', 'c'), 2: ('a', 'b', 'c'), 3: ('a', 'b', 'c')}
- 试图修改某个key的值,实际上会新建一个字典
>>> dict1.fromkeys((1,2,3),'a')
{1: 'a', 2: 'a', 3: 'a'}
>>> dict1.fromkeys((1,3),'b')
{1: 'b', 3: 'b'}
访问字典的几个方法 - clear()方法清空字典
>>> dict1
{0: 'y', 1: 'y', 2: 'y', 3: 'y', 4: 'y'}
>>> dict1.clear()
>>> dict1
{}
- copy()方法:浅拷贝(浅拷贝!= 赋值:地址不同)
- pop()
>>> a
{1: 'one', 2: 'two', 3: 'three'}
>>> a.pop(2)
'two'
>>> a
{1: 'one', 3: 'three'}
- popitem():随机弹出一个键值
>>> a.popitem()
(3, 'three')
>>> a
{1: 'one'}
- setdefault():setdefault设置初始值,后面给元素赋值后再使用setdefault不会改变该值
>>> a
{1: 'one'}
>>> a.setdefault('小白')
>>> a
{1: 'one', '小白': None}
>>> a.setdefault(2, 0)
0
>>> a
{1: 'one', '小白': None, 2: 0}
>>> a[2] += 1
>>> a
{1: 'one', '小白': None, 2: 1}
>>> a.setdefault(2, 0)
1
>>> a
{1: 'one', '小白': None, 2: 1}
- update()利用一个字典或者映射来更新一个字典
>>> a
{1: 'one', '小白': None}
>>> b = {'小白':'dog'}
>>> a.update(b)
>>> a
{1: 'one', '小白': 'dog'}
- python字典不支持一键多值,相同的键值会覆盖上一次键值
>>> dict1 = {1:'one', 1:'yi'}
>>> dict1[1]
'yi'
- python会调用内部的散列函数,将key值作为参数进行转换,得到一个唯一的地址(相同的键值(123/123.0)转换得到相同的地址),然后将value存放在地址中
- key值必须是可哈希的,即键值必须可以通过散列函数计算出唯一地址
- 由于字典存放方式(使用哈希算法存储),所以使用in和not in查找key是否存在于字典中的效率更高,时间复杂度O(1)
|
评分
-
查看全部评分
|