字典
是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key):必须使用不可变类型,即键只能是数字,字符,元组类型,不能是集合,列表和字典类型。
值(value):可以是任何类型。
注意:
- 1、字典是一种映射类型,它的元素是键值对。
- 2、字典的关键字必须为不可变类型,关键字是唯一的。
- 3、创建空字典使用 { }
字典形式
d={32:23} #字典键是数字
d={'2':23} #字典键是字符类型
d={(23,12):24} #字典是元组类型的
d={52:23,'sf':52,(52,51):52,23:{52},33:[52,12]} #字典键3种形式,值6种形式
字典索引
d={52:23,'sf':52,(52,51):52,23:{52},33:[52,12]} #字典键3种形式,值6种形式
d[52] #值为23
d[33] #值为列表[52,12]
d[33][0] #值为52
字典函数
删除
del d[33] #删除键32
d.clear() #清空字典
del dict #删除字典
浅复制
dcopy = d.copy()
formkeys()方法
- seq -- 字典键值列表。
- value -- 可选参数, 设置键序列(seq)对应的值,默认为 None
seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print ("新的字典为 : %s" % str(dict))
dict = dict.fromkeys(seq, 10)
print ("新的字典为 : %s" % str(dict))
'''
新的字典为 : {'age': None, 'name': None, 'sex': None}
新的字典为 : {'age': 10, 'name': 10, 'sex': 10}
'''
get()方法
get() 函数返回指定键的值,如果值不在字典中返回默认值
d.get(33) #可以判断是否存在键33
values() 方法
返回一个迭代器,可以使用 list() 来转换为列表,列表为字典中的所有值。
dict = {'Sex': 'female', 'Age': 7, 'Name': 'Zara'}
print ("字典所有值为 : ", list(dict.values()))
'''
输出结果
字典所有值为 : ['female', 7, 'Zara']
'''
in操作符
用于判断键是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false。
item()函数
以列表返回可遍历的(键, 值) 元组数组
dict = {'Name': 'Runoob', 'Age': 7}
for i,j in dict.items():
print(i, ":\t", j)
'''
输出结果
Name : Runoob
Age : 7
'''
keys()
keys() 方法返回一个可迭代对象,可以使用 list() 来转换为列表。
>>> dict = {'Name': 'Runoob', 'Age': 7}
>>> dict.keys()
dict_keys(['Name', 'Age'])
>>> list(dict.keys()) # 转换为列表
['Name', 'Age']
>>>
字典所有的键为 : dict_keys(['Age', 'Name'])
pop()方法
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
>>> site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}
>>> pop_obj=site.pop('name')
>>> print(pop_obj)
菜鸟教程
popitem()
随机返回并删除字典中的一对键和值(一般删除末尾对)。
site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}
pop_obj=site.popitem()
print(pop_obj)
print(site)
'''
输出结果
('url', 'www.runoob.com')
{'name': '菜鸟教程', 'alexa': 10000}
'''