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(<class 'list'>, {'a': ['apple', 'apple'], 'b': ['beta']})

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值