|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)
|
评分
-
查看全部评分
|