1 字典基础操作
1.1 创建字典
- 通过
{}
操作符创建字典
aDict = {'name':'ke', 'age':25}
- 通过
dict()
工厂方法创建字典
bDict = dict((['name', 'ke'], ['age', 25]))
- 通过
fromkeys()
创建具有相同值得默认字典
cDict = {}.fromkeys(('ke', 'alice'), 23)
1.2 访问字典
- 字典是映射类型,意味着它没有下标,访问字典中的值需要使用相应的值
>>> for eachKey in aDict:
... print 'key=%s, value=%s' % (eachKey, aDict[eachKey])
...
key=age, value=25
key=name, value=ke
>>> print '%(name)s' % aDict
ke
1.3 更新字典
- 通过键更新字典
- 如果字典中有该键,则更新相关值
-如果字典中没有该键,则向字典中添加新值
>>> print aDict
{'age': 25, 'name': 'ke'}
>>> aDict['age'] = 22
>>> print aDict
{'age': 22, 'name': 'ke'}
>>> aDict['email']='allenouyangke@icloud.com'
>>> print aDict
{'age': 22, 'name': 'ke', 'email': 'allenouyangke@icloud.com'}
>>>
1.4 删除字典
- 通过
del
可以删除字典中的元素或整个字典
- 使用内部方法
clear()
可以清空字典
- 使用
pop()
方法可以“弹出”字典中的元素
>>> del aDict['email']
>>> print aDict
{'age': 22, 'name': 'ke'}
>>> aDict.pop('age')
22
>>> print aDict
{'name': 'ke'}
>>> aDict.clear()
>>> print aDict
{}
1.5 字典操作符
- 使用字典键查找操作符号
[]
,查找键所对应的值
- 使用
in
或not in
判断键是否存在于字典中
>>> aDict = {'name': 'ke', 'age': 25}
>>> print aDict
{'age': 25, 'name': 'ke'}
>>> 'name' in aDict
True
>>> 'ke' in aDict
False
>>>
2 字典相关函数
2.1 作用于字典的函数
-
len()
:返回字典中元素的数目
-
hash()
:本身不是为字典设计的,但是可以判断某个对象是否可以作为字典的键
>>> print aDict
{'age': 25, 'name': 'ke'}
>>> len(aDict)
2
>>> hash(3)
3
>>> hash([])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>>
2.2 字典内建方法
-
dict.copy()
:返回字典(浅复制)的一个副本
>>> print aDict
{'age': 25, 'name': 'ke'}
>>> bDict = aDict.copy()
>>> print bDict
{'age': 25, 'name': 'ke'}
>>> bDict['name'] = 'yuyu'
>>> print bDict
{'age': 25, 'name': 'yuyu'}
>>> print aDict
{'age': 25, 'name': 'ke'}
>>>
-
dict.get(key, default=None)
:对字典dict中的键key,返回它对应的值value,如果字典中不存在此键,则返回default的值
>>> print aDict
{'age': 25, 'name': 'KE'}
>>> aDict.get('name', 'not found')
'KE'
>>> aDict.get('email', 'not found')
'not found'
>>>
-
dict.setdefault(key, default=None)
:如果字典中不存在key键,由dict[key]=default为它赋值
>>> print aDict
{'age': 25, 'name': 'KE'}
>>> aDict.setdefault('age', 20)
25
>>> aDict.setdefault('iphone', 13570319584)
13570319584
>>> print aDict
{'age': 25, 'name': 'KE', 'iphone': 13570319584}
>>>
-
dict.items()
:返回一个包含字典中(键,值)对元组的列表
-
dict.keys()
:返回一个包含字典中键的列表
-
dict.values()
:返回一个包含字典中所有值得列表
-
dict.update(dict2)
:将字典dict2的键-值对添加到字典dict
3 集合
3.1 集合类型
- 数学上,把
set
称作由不同的元素组成的集合,集合(set)的成员通常被称作集合元素
- 结合对象是一组无序排列的可哈希的值
- 集合有两种类型:
>>> s1 = set('hello')
>>> s2 = frozenset('hello2')
>>> s1
set(['h', 'e', 'l', 'o'])
>>> s2
frozenset(['h', '2', 'e', 'l', 'o'])
>>>
3.2 集合类型操作符
- 集合支持用
in
或not in
操作符检查成员
- 能够通过
len()
检查集合大小
- 能够使用
for
迭代集合成员
- 不能进行切片,没有键
-
|
:联合,取并值
-
&
:交集
-
=
:差补
3.3 集合内建方法
-
set.add()
:添加成员
-
set.update()
:批量添加成员
-
set.remove()
:移除成员
-
s.issubset(t)
:如果s是t的子集,则返回True,否则返回False
-
s.issuperset(t)
:如果t是s的超集,则返回True,否则返回False
-
s.union(t)
:返回一个新集合,该集合是s和t的并集
-
s.intersection(t)
:返回一个新集合,该集合是s和t的交集
-
s.difference(t)
:返回一个新集合,该集合是s的成员,但不是t的成员