字典
字典的创建
- {}、dict()
>>> a = {'name':'梁朝伟','age':16,'job':'actor'}
>>> b = dict(name = '梁朝伟', age = 16,job = 'actor')
>>> a
{'name': '梁朝伟', 'age': 16, 'job': 'actor'}
>>> b
{'name': '梁朝伟', 'age': 16, 'job': 'actor'}
>>> a = dict([('name','梁朝伟'),('age',16),('job','actor')])
>>> a
{'name': '梁朝伟', 'age': 16, 'job': 'actor'}
创建空的字典对象
>>> c = {} #空的字典对象
>>> c
{}
>>> d = dict() #空的字典对象
>>> d
{}
- zip()
可以用于列表、元组,不能用于字典
>>> a = ['name','age','job']
>>> b = ['梁朝伟',16,'actor']
>>> c = dict(zip(a,b))
>>> c
{'name': '梁朝伟', 'age': 16, 'job': 'actor'}
- 通过 fromkeys 创建值为空的字典
>>> a = dict.fromkeys(['name','age','job'])
>>> a
{'name': None, 'age': None, 'job': None}
字典元素的访问
- 通过 [键] 获得“值”。若键不存在,则抛出异常。
- 通过 get()方法获得“值”。优点:指定键不存在,返回 None;也可以设 定指定键不存在时默认返回的对象。推荐使用 get()获取“值对象”。
- 列出所有的键值对
- 列出所有的键,列出所有的值
- len() 键值对的个数
- 检测一个“键”是否在字典中
字典元素添加、修改、删除
- 给字典新增“键值对”。
- 使用 update()将新字典中所有键值对全部添加到旧字典对象上。
- 字典中元素的删除,可以使用 del()方法;或者 clear()删除所有键值对;pop()删除指定 键值对,并返回对应的“值对象”;
- popitem() :随机删除和返回该键值对。
序列解包
序列解包可以用于元组、列表、字典。序列解包可以让我们方便的对多个变量赋值。
>>> x,y,z=(20,30,10)
>>> x
20
>>> y
30
>>> z
10
>>> (a,b,c)=(9,8,10)
>>> a
9
>>> [a,b,c]=[10,20,30]
>>> a
10
>>> b
20
序列解包用于字典时,默认是对“键”进行操作; 如果需要对键值对操作,则需要使用 items();如果需要对“值”进行操作,则需要使用 values()
集合创建和删除
- 使用{}创建集合对象,并使用 add()方法添加元素
>>> a = {3,5,7}
>>> a
{3, 5, 7}
>>> a.add(9)
>>> a
{9, 3, 5, 7}
- 使用 set(),将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则只保 留一个。
>>> a = ['a','b','c','b']
>>> b = set(a)
>>> b
{'b', 'a', 'c'}
- remove()删除指定元素;clear()清空整个集合
>>> a = {10,20,30,40,50}
>>> a.remove(20)
>>> a {10, 50, 30}
并、交、差
>>> a = {1,3,'梁朝伟'}
>>> b = {'he','it','梁朝伟'}
>>> a|b #并集
{1, 3, '梁朝伟', 'he', 'it'}
>>> a&b #交集
{'梁朝伟'}
>>> a-b #差集
{1, 3}
>>> a.union(b) #并集
{1, 3, '梁朝伟', 'he', 'it'}
>>> a.intersection(b) #交集
{'梁朝伟'}
>>> a.difference(b) #差集
{1, 3}