字典的创建以及使用方法
字典(dict)字典属于一个新的数据结构,称之为映射,字典的作用和列表的差不多,都是用来储存对象的容器。字典中每一个元素(value)都有一个对应的名字(key)通过这唯一的名字可以快速找到对应的元素。
key(字典键)和value(字典值)是一一对应的
语法:{key:value,key:value,key:value}
字典键(key):可以是任意不可变对象。
字典值(value):可以是任意对象。
字典的创建
字典创建主要有两种方式
- 使用{}创建字典
- 使用dict()函数创建字典,dict()中必须使用双值表达式
- 使用formkeys(key,value) 字典内置方法,key可以是一个列表、元组等数据类型,如果是列表或者元组,列表或元组中的每个元素会自动成为一个key,value为字典所有key对应的初始值,默认为None。
d = {'name': 'wu', 'age': 3}
d1 = dict([('ab', 'bc')])
d2 = dict([('a', 'd'), ('b', 'c')])
d3 = dict([('ad')])
print(d, d1, d2, d3) # {'name': 'wu', 'age': 3} {'ab': 'bc'} {'a': 'd', 'b': 'c'} {'a': 'd'}
k = ['name','age','python']
v = 10
dic = dict.fromkeys(k,v)
print(dic) # {'name': 10, 'age': 10, 'python': 10}
字典的使用方法
目标 | 使用方法(格式) | 注释 |
---|---|---|
逐个调用字典值 | 方法一:dict[key] 方法二:dict.get(key,返回值-默认为None) |
方法一字典内必须存在所要寻找的key,不存在则会报错, 方法二如果key不存在,如果key不存在则返回提示内容,如果没写提示内容,默认返回None。 |
遍历字典 | 方法一keys 语法:for k in dicr.keys(): print(dic[k]) 方法二valuers 语法:for v in dict.values(): print(v) 方法三items 语法:for x, y in dict.items(): print(x, y) |
方法一遍历字典中的键 方法二遍历字典中的值 方法三同时遍历键和值 |
修改和添加 | 语法:dict[key] = value | 如果dict中存在key这会修改key为新的value,如果不存在key,则会添加新的key并赋值value。 |
删除 | 语法:del dict[key] | 除此之外还有几种字典内置方法也可以删除,我们下面将详细介绍 |
实例
dic = {
'name': '寻觅',
'age': 20,
'python': '1',
'pycharm': '蛮好用'
}
print(dic['pycharm']) # 蛮好用
print(dic.get('pycharm'),dic.get('vscode','没有这个键')) # 蛮好用 没有这个键
# keys 方法
for k in dic.keys():
print(k) # name age python pycharm
# values 方法
for v in dic.values():
print(v) # 寻觅 20 1 蛮好用
# items 方法
for i in dic.items():
print(i) # ('name', '寻觅') ('age', 20) ('python', '1') ('pycharm', '蛮好用')
for x, y in dic.items():
print(x,y) # name 寻觅 age 20 python 1 pycharm 蛮好用
dic['name'] = '隐藏'
dic['vscode'] = '微软大法好'
print(dic) # {'name': '隐藏', 'age': 20, 'python': '1', 'pycharm': '蛮好用', 'vscode': '微软大法好'}
del dic['name']
print(dic) # {'age': 20, 'python': '1', 'pycharm': '蛮好用', 'vscode': '微软大法好'}
字典的内置函数
函数描述
函数 | 描述 |
---|---|
dict.formkeys(key,value) | 创建一个新字典的方法,key可以是一个列表、元组等数据类型,如果是列表或者元组,列表或元组中的每个元素会自动成为一个key,value为字典所有key对应的初始值,默认为None。 |
dict.get(key,返回值-默认为None) | 返回指定key的value,如果指定key不存在,则返回返回值。 |
dict.item() | 以列表返回dict中所有的key和value。 |
dict.keys() | 以列表返回dict中的所有键。 |
dict.values() | 以列表的形式返回dict中的所有value。 |
dict.copy() | 返回一个浅复制。 |
dict.setdefault(key,value-默认值为None) | 如果键不在dict中则添加key和value,如果已经存在一样的key,则不会有任何操作。 |
dict.update(dict2) | 将dic2中的值添加到dic1中. |
dict.clear() | 删除dict内所有元素。 |
dict.pop(key,返回值-默认为None) | 删除指定的key以及其对用的value,并将删除key的value作为返回值。如果删除的key不存在,则返回返回值。 |
dict.popitem() | 随机删除一个键值对,并将删除的键值以元组的方式对作为返回值返回。 |
函数实例
dic = {
'name':'隐藏',
'a':10
}
dic1 = {
'name': '寻觅',
'age': '20',
}
dic2 = dic1.copy()
print(dic2) # {'name': '寻觅', 'age': '20'}
dic1.setdefault('name',1)
print(dic1) # {'name': '寻觅', 'age': '20'}
dic1.setdefault('python',1)
print(dic1) # {'name': '寻觅', 'age': '20', 'python': 1}
dic.update(dic2)
print(dic) # {'name': '寻觅', 'a': 10, 'age': '20'}
dic.clear()
print(dic) # {}
a = dic1.pop('name')
print(a,dic1) # 寻觅 {'age': '20', 'python': 1}
a = dic1.popitem()
print(a,dic1) # ('python', 1) {'age': '20'}