Python基础教程:字典

映射让你能够使用任何不可变的对象(最常用的是字符串和元组)来标识其元素。字典是Python中唯一的内置映射类型。在字典中,键必须是独一无二的。可使用函数dict从其他映射或键-值对序列创建字典。

person = [('name', 'watkins'), ('age', '42'), ('school', 'swjtu')]
pDict = dict(person)
print(pDict)    # {'name': 'watkins', 'age': '42', 'school': 'swjtu'}

pDict['address'] = 'X9211'  # 自动添加
del pDict['school'] # 不存在将引起`KeyError`异常
print(pDict)    # {'name': 'watkins', 'age': '42', 'address': 'X9211'}

将字符串格式设置功能用于字典

使用format_map方法指出将通过一个映射来提供所需的信息。

person = {'name': 'watkins', 'age': '42', 'address': 'X9211'}
print("the name of person is {name}".format_map(person))    # the name of person is watkins

字典方法

方法 描述 说明
clear 删除所有的字典项 就地执行的
copy 返回原来字典的副本 替换副本中的值原件不受影响,修改副本中的值原件也将发生变化
浅复制。可使用模块copy中的函数deepcopy执行深复制
fromkeys 创建一个新字典
其中包含指定的键且每个键对应的值都是None
可指定特定的值
可直接使用字典类型dict将其作为类方法来调用
get 访问字典项 存在则返回值,不存在返回指定的默认值
items 返回一个包含所有字典项的字典视图 (key, value)形式,字典项在列表中的排列顺序不确定
视图始终是底层字典的反映,不进行复制
keys 返回一个包含指定字典中的键的字典视图
pop 获取与指定键相关联的值并将该键-值对从字典中删除 不存在将引起KeyError异常
popitem 随机地弹出一个字典项 可使用模块collectionsOrderedDict类
以可预测的顺序弹出字典项
setdefault 获取与指定键相关联的值 不包含指定的键时在字典中添加指定的键-值对
可使用模块collections中的defaultdict类
update 使用一个字典中的项来更新另一个字典
values 返回一个由字典中的值组成的字典视图 可能包含重复的值
from copy import deepcopy
person = {'name': 'watkins', 'address': ['X9211', 'H071408']}
pc = person.copy()
pdc = deepcopy(person)

pc['name'] = 'pjing'
pc['address'].append('L3A2031')
print(person)   # {'name': 'watkins', 'address': ['X9211', 'H071408', 'L3A2031']}
print(pc)   # {'name': 'pjing', 'address': ['X9211', 'H071408', 'L3A2031']}

person['address'].append('L3A2029')

print(pc)   # {'name': 'pjing', 'address': ['X9211', 'H071408', 'L3A2031', 'L3A2029']}
print(pdc)  # {'name': 'watkins', 'address': ['X9211', 'H071408']}

print(dict.fromkeys(['name', 'age'], 'False'))  # {'name': 'False', 'age': 'False'}

print(person.get('baby', 'False'))  # False

# 创建有序字典,popitem按照后进先出原则删除最后加入的元素
from collections import OrderedDict
pOrd = OrderedDict([('b', 'beta'), ('a', 'alpha'), ('c', 'city')])
print(pOrd.popitem())   # ('c', 'city')
print(pOrd) # OrderedDict([('b', 'beta'), ('a', 'alpha')])

# defaultdcit接受一个工厂函数作为参数,当键不存在时返回的是工厂函数的默认值。
# 工厂函数可以是list、set、str和int等
from collections import defaultdict
# 保留元素插入的顺序,使用列表list
pLst = defaultdict(list)
pLst['a'].append('apple')
pLst['a'].append('apple')
pLst['b'].append('beta')
print(pLst) # defaultdict(, {'a': ['apple', 'apple'], 'b': ['beta']})

# 消除重复元素,使用集合set
pSet = defaultdict(set)
pSet['a'].add('apple')
pSet['a'].add('apple')
pSet['b'].add('beta')
print(pSet) # defaultdict(, {'a': {'apple'}, 'b': {'beta'}})

(最近更新:2019年04月11日)

你可能感兴趣的:(#,PYTHON)