字典
关于字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典对象的本质是,一个通过键值
而非索引
存取的无序的、可迭代、可变的映射表。键必须互不相同。
字典 & 序列
- 序列是以
连续的整数
为索引;字典以关键字
为索引,关键字可以是任意不可变类型
,通常用字符串或数值。
创建
- 字典的每个键值(key=>value)对用冒号
:
分割; - 键必须是唯一的,但值则不必。
- 每个对之间用逗号
,
分割; - 整个字典包括在花括号
{}
中,格式如下:
d = {key1 : value1, key2 : value2 }
# 空字典
d1 = {}
d2 = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
# 向内存申请一空闲内存单元存储 { 'abc': 456 },并将变量名 dict1 指向此内存单元的首地址
dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
>>> type(dict)
<type 'dict'>
# 查看dict类型的定义
>>> help(dict)
# 查看dict类型的属性和方法
>>> dir(dict)
属性
相关内置函数:
函数 | 描述 |
---|---|
len(dict) | 计算字典元素个数,即键的总数。 |
str(dict) | 输出字典,以可打印的字符串表示。 |
type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
>>> d = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> len(d)
3
>>> str(d)
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}
>>> type(dict)
dict
访问
相关方法
函数 | 描述 |
---|---|
key in dict | 如果键在字典dict里返回true,否则返回false |
d.get(key, default=None) | 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
d.items() | 以列表返回可遍历的(键, 值) 元组数组 |
d.keys() | 返回一个迭代器,可以使用 list() 来转换为列表 |
d.values() | 返回一个迭代器,可以使用 list() 来转换为列表 |
>>> d = { 'a': 1, 'b':2, 'c':3 }
>>> d['a']
1
# for循环 迭代
>>> for k in d:
print('%s -> %s' % (k, d[k]))
a -> 1
b -> 2
c -> 3
>>> d.keys()
dict_keys(['a', 'b', 'c'])
>>> d.values()
dict_values([1, 2, 3])
>>> d.items()
dict_items([('a', 1), ('b', 2), ('c', 3)])
>>> d.get('d') # 无 d,显示为空
>>> d.get('d', default='99')
... TypeError: get() takes no keyword arguments
>>> d.get('d', '99') # 设置默认值
'99'
删除
- 删除某个键值对
- 删除这个字典
相关方法
函数 | 描述 |
---|---|
d.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
d.update(dict2) | 把字典dict2的键/值对更新到dict里 |
d.pop(key[,default\]) |
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
d.popitem() | 随机返回并删除字典中的最后一对键和值。 |
d.clear() | 删除字典内所有元素 |
>>> d = { 'a': 1, 'b':2, 'c':3 }
>>> id(d)
140521338186000
>>> del d['a']
>>> d
{'b': 2, 'c': 3}
>>> id(d)
140521338186000 # 和上方一致
# 测试存在
# in 判断 字典 中是否包含指定键
>>> 'b' in d
True
>>> 2 in d
False
>>> del d
>>> d
... NameError: name 'd' is not defined
# 使用 clear 清空
>>> d = { 'a': 1, 'b':2, 'c':3 }
>>> d.clear()
>>> d
{}
>>> d = { 'a': 1, 'b':2, 'c':3 }
# 使用 pop 删除某键值对
>>> d.pop('a')
>>> d
{'b': 2, 'c': 3}
>>> d.pop('a')
... KeyError: 'a'
>>> d.pop('a',2)
2
>>> d
{'b': 2, 'c': 3}
>>> d.popitem()
('c', 3)
>>> d2 = {'d':4, 'e':5, 'f':6}
# 将 d2 插入到 d 中
>>> d.update(d2)
>>> d
{'b': 2, 'd': 4, 'e': 5, 'f': 6}
其他方法
Python字典包含了以下内置方法:
函数 | 描述 |
---|---|
d.copy() | 返回一个字典的浅复制 |
d.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |