五、Python基本数据类型五:字典类型
·字典就是一系列的标签和绑定在标签上的数据值对的集合
·字典容器中保存着一系列的key-value对
·字典中通过 key 来访问 value
·键必须是唯一的,但值则不必。
·值可以取任何数据类型,但键必须是不可变的
1、字典的创建
·使用花括号{}法
dict_a = {'a':1, 'b':2, 12:'abc', (10, 20):[1, 2, 3]}
dict_a
#{'b': 2, 12: 'abc', (10, 20): [1, 2, 3], 'a': 1}
·使用dict()方法,可以传入多个列表或元组参数作为 key-value 对,每个列表或元组将被当成一个 key-value 对,因此这些列表或元组都只能包含两个元素。
dict_a = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)] dict_b = [['BMW', 8.5], ['BENS', 8.3], ['AUDI', 7.9]] dict_1 = dict(dict_a) dict_2 = dict(dict_b) print(dict_1, '\n', dict_2) #{'lettuce': 2.19, 'celery': 1.58, 'brocoli': 1.29} #{'AUDI': 7.9, 'BENS': 8.3, 'BMW': 8.5}
dict_a = dict(hello = 'world', abc = [1, 3], acd = (10,)) dict_a #{'acd': (10,), 'hello': 'world', 'abc': [1, 3]}
2、字典的基本用法
(1)访问字典元素
·通过key访问value
dict_a = {'语文':89, '数学':98, '英语':98}
dict_a['语文']
#89
(2)修改字典元素
dict_a = {'语文':89, '数学':98, '英语':98}
dict_a['语文'] = 92
dict_a
#{'英语': 98, '语文': 92, '数学': 98}
(3)增加字典元素
·为不存在的key赋值即可增加字典元素,为存在的key赋值即可修改字典元素
dict_a = {'语文':89, '数学':98, '英语':98}
dict_a
#{'英语': 98, '语文': 89, '数学': 98}
dict_a['物理'] = 100
dict_a
#{'英语': 98, '物理': 100, '语文': 89, '数学': 98}
(4)删除字典元素
·使用del语句
dict_a = {'语文':89, '数学':98, '英语':98}
del dict_a['语文'] # 删除键是'语文'的条目
dict_a
#{'英语': 98, '数学': 98}
dict_a = {'语文':89, '数学':98, '英语':98}
dict_a.clear() # 清空词典所有条目
dict_a
#{}
dict_a = {'语文':89, '数学':98, '英语':98}
del dict_a # 删除词典
dict_a
'''
Traceback (most recent call last):
File "<pyshell#42>", line 1, in <module>
dict_a
NameError: name 'dict_a' is not defined
'''
(5)判断指定元素是否存在
·使用in或not in关键字判断是否存在指定的key
dict_a = {'语文':89, '数学':98, '英语':98}
'语文' in dict_a
#True
'物理' in dict_a
#False
3、使用字典格式化字符串
·在格式化字符串时,可以在字符串模板中按 key 指定变量,然后通过字典为字符串模板中的 key 设置值
# 字符串模板中使用key temp = '教程是:%(name)s, 价格是:%(price)010.2f, 出版社是:%(publish)s' book = {'name':'Python基础教程', 'price': 99, 'publish': 'C语言中文网'} # 使用字典为字符串模板中的key传入值 print(temp % book) #教程是:Python基础教程, 价格是:0000099.00, 出版社是:C语言中文网 book = {'name':'C语言小白变怪兽', 'price':159, 'publish': 'C语言中文网'} # 使用字典为字符串模板中的key传入值 print(temp % book) #教程是:C语言小白变怪兽, 价格是:0000159.00, 出版社是:C语言中文网
4、字典的常用方法
(1)update()方法:更新己有的字典
dict_a = {'语文':89, '数学':98, '英语':98}
dict_a.update({'语文':92, '物理':100})
dict_a
#{'英语': 98, '物理': 100, '语文': 92, '数学': 98}
(2)items()、keys()、values()方法:分别用于获取字典中的所有 key-value 键值对、所有 key、所有 value,可通过 list() 函数把它们转换成列表
dict_a = {'语文':89, '数学':98, '英语':98}
dict_a.items()
#dict_items([('英语', 98), ('语文', 89), ('数学', 98)])
dict_a = {'语文':89, '数学':98, '英语':98}
dict_a.keys()
#dict_keys(['英语', '语文', '数学'])
dict_a = {'语文':89, '数学':98, '英语':98}
dict_a.values()
#dict_values([98, 89, 98])
dict_a = {'语文':89, '数学':98, '英语':98}
list_a = list(dict_a.values())
list_a
#[98, 89, 98]
list_a[1]
#89
list_b = list(dict_a.items())
list_b
#[('英语', 98), ('语文', 89), ('数学', 98)]
list_b[1]
#('语文', 89)
(3)setdefault()方法:返回指定 key 对应的 value;如果该 key-value 对存在,则直接返回该 key 对应的 value;如果该 key-value 对不存在,则先为该 key 设置默认的 value,然后再返回该 key 对应的 value
dict_a = {'语文':89, '数学':98, '英语':98}
# 设置默认值,该key在dict中不存在,新增key-value对
print(dict_a.setdefault('物理', 100)) #100
dict_a #{'英语': 98, '物理': 100, '语文': 89, '数学': 98}
# 设置默认值,该key在dict中存在,不会修改dict内容
print(dict_a.setdefault('语文', 100)) #89
dict_a #{'英语': 98, '物理': 100, '语文': 89, '数学': 98}
(4)fromkeys()方法:使用给定的多个 key 创建字典,这些 key 对应的 value 默认都是 None;也可以额外传入一个参数作为默认的 value
# 使用列表创建包含2个key的字典 a_dict = dict.fromkeys(['a', 'b']) print(a_dict) # {'a': None, 'b': None} # 使用元组创建包含2个key的字典 b_dict = dict.fromkeys((13, 17)) print(b_dict) # {13: None, 17: None} # 使用元组创建包含2个key的字典,指定默认的value c_dict = dict.fromkeys((13, 17), 'good') print(c_dict) # {13: 'good', 17: 'good'}
(5)常用方法小结
|
序号 |
函数及描述
|
|
|
1 |
len(dict) |
|
|
2 |
str(dict) |
|
|
3 |
type(variable) |
|
|
4 |
radiansdict.clear() |
|
|
5 |
radiansdict.copy() |
|
|
6 |
radiansdict.fromkeys() |
|
|
7 |
radiansdict.get(key, default=None) |
|
|
8 |
key in dict |
|
|
9 |
radiansdict.items() |
|
|
10 |
radiansdict.keys() |
|
|
11 |
radiansdict.setdefault(key, default=None) |
|
|
12 |
radiansdict.update(dict2) |
|
|
13 |
radiansdict.values() |
|
|
14 |
pop(key[,default]) |
|
|
15 |
popitem() |
|
浙公网安备 33010602011771号