基本的字典操作
len(d) 返回字典 d 包含的项(键-值对)数。
d[k] 返回与键 k 相关联的值。
d[k] = v 将值 v 关联到键 k 。
del d[k] 删除键为 k 的项。
k in d 检查字典 d 是否包含键为 k 的项。
people = {
'Alice': {
'phone': '2341',
'addr': 'Foo drive 23'
},
'Beth': {
'phone': '9102',
'addr': 'Bar street 42'
},
'Cecil': {
'phone': '3158',
'addr': 'Baz avenue 90'
}
}
# Descriptive labels for the phone number and address. These will be used
# when printing the output.
labels = {
'phone': 'phone number',
'addr': 'address'
}
name = input('Name: ')
# Are we looking for a phone number or an address?
request = input('Phone number (p) or address (a)? ')
# Use the correct key:
if request == 'p': key = 'phone'
if request == 'a': key = 'addr'
# Only try to print information if the name is a valid key in
# our dictionary:
if name in people: print("{}'s {} is {}.".format(name, labels[key], people[name][key]))
Name: Beth
Phone number (p) or address (a)? p
Beth's phone number is 9102.
函数 dict
可使用函数 dict 从其他映射(如其他字典)或键-值对序列创建字典。
将字符串格式设置功能用于字典
可在字典中包含各种信息,这样只需在格式字符串中提取所需的信息即可。为此,必须使用 format_map 来指出你将通过一个映射来提供所需的信息。
示例代码
字典方法
--clear
方法 clear 删除所有的字典项,这种操作是就地执行的(就像 list.sort 一样),因此什么都不
返回(或者说返回 None )。
--copy
方法 copy 返回一个新字典,其包含的键-值对与原来的字典相同(这个方法执行的是浅复制,
因为值本身是原件,而非副本)。
当替换副本中的值时,原件不受影响。然而,如果修改副本中的值(就地修改而不是替换),原件也将发生变化。
深复制,即同时复制值及其包含的所有值,可使用模块 copy 中的函数 deepcopy
--fromkeys
方法 fromkeys 创建一个新字典,其中包含指定的键,且每个键对应的值都是 None 。
--get
方法 get 为访问字典项
--items
方法 items 返回一个包含所有字典项的列表,其中每个元素都为 (key, value) 的形式。字典项
在列表中的排列顺序不确定。
--keys
方法 keys 返回一个字典视图,其中包含指定字典中的键。
--pop
方法 pop 可用于获取与指定键相关联的值,并将该键值对从字典中删除。
--popitem
方法 popitem 类似于 list.pop ,但 list.pop 弹出列表中的最后一个元素,而 popitem 随机地弹出一个字典项
--setdefault
方法 setdefault 有点像 get ,因为它也获取与指定键相关联的值,但除此之外, setdefault还在字典不包含指定的键时,在字典中添加指定的键-值对。
--update
方法 update 使用一个字典中的项来更新另一个字典。
--values
方法 values 返回一个由字典中的值组成的字典视图。不同于方法 keys ,方法 values 返回的视图可能包含重复的值。
代码示例
网友评论