字典是一种可变容器模型,且可存储任意类型对象。
字典的每个键值对( key:value )用冒号分割,每个对之间用逗号分割,整个字典包括在花括号 {} 中
d = {key1 : value1, key2 : value2, key3 : value3 }
1.创建字典
dict作为 Python 的关键字和内置函数,变量名不建议命名为 dict。
键必须是唯一的,但值可以相同。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
d1 = {}#创建空字典
d2 = dict()#使用内建函数 dict()创建字典
d3 = {"name":"karen","age":23}
d4 = dict({"name":"jack","age":24})
print(d3)# 打印字典
print(len(d3))# 查看字典的数量
print(type(d3))# 查看类型
2.访问字典里的值
把相应的键放入到方括号中
mydic = {'Name': 'jack', 'Age': 16, 'Class': 'First'}
print (mydic['Name'])
print (mydic['Age'])
如果用字典里没有的键访问数据,会输出错误
mydic = {'Name': 'jack', 'Age': 16, 'Class': 'First'}
print (mydic['jack'])
3.修改字典
向字典添加新内容的方法是增加新的键值对,修改已有键值对
mydic = {'Name': 'jack', 'Age': 17}
#添加
mydic['Class'] = 'First'
print(mydic)
print (mydic['Class'])
print("--------------------")
#修改
print(mydic['Age'])
mydic['Age'] = 18
print (mydic['Age'])
4.删除字典元素
能删单一的元素也能清空字典,清空只需一项操作
显式删除一个字典用del命令
mydic = {'Name': 'jack', 'Age': 17, 'Class': 'First'}
del mydic['Class'] # 删除键 'Class'
print(mydic)
mydic.clear() # 清空字典
print(mydic)
del mydic # 删除字典
print(mydic)
5.字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
mydic = {'Name': 'jack', 'Age': 27, 'Name': 'karen'}
print (mydic['Name'])
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
mydic1 = {97:"a",98:"b"}
mydic2 = {"name":"karen","age":27}
mydic3 = {("name",):"karen","age":27}
print(mydic1)
print(mydic2)
print(mydic3)
mydic4 = {['Name']: 'karen', 'Age': 27} #报错unhashable type: 'list'
6.字典常用API
操作字典的函数:
序号 | 函数 | 描述 |
---|---|---|
1 | len(dict) | 计算字典元素个数,即键的总数。 |
2 | str(dict) | 输出字典,可以打印的字符串表示。 |
3 | type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
字典的方法:
序号 | 函数及描述 |
---|---|
1 | dict.clear()删除字典内所有元素 |
2 | dict.copy()返回一个字典的浅复制 |
3 | dict.fromkeys(seq)创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
4 | dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
5 | key in dict如果键在字典dict里返回true,否则返回false |
6 | dict.items()以列表返回一个视图对象 |
7 | dict.keys()返回一个视图对象 |
8 | dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | dict.update(dict2)把字典dict2的键/值对更新到dict里 |
10 | dict.values()返回一个视图对象 |
11 | pop(key,default)删除字典 key(键)所对应的值,返回被删除的值。 |
12 | popitem()返回并删除字典中的最后一对键和值。 |