与小时候用的字典类似,每个字都有对应的解释,python的字典里分为键值和值,两者之间用:连接。
字典与列表、元组不同,其外层用的是大括号{}。不同的键值和值用 , 连接。
但是字典是无序的,即他不存在索引值。
dic = {} # 空字典 dic1 = {'name': 'Ice-冰鸽', 'age': 0, 'country': 'China'} # 常规定义 dic2 = dict(name='Ice-冰鸽', age=0, country='China') # 使用dict函数定义字典 print(dic1['name']) # 通过键值取值 Ice-冰鸽 print(dic2['name']) # 通过键值取值 Ice-冰鸽
通过setdefault函数可以实现对字典元素的添加,其返回值为字符串
口诀:无则增,有则查
dic = {'name': 'Ice-冰鸽', 'age': 0, 'country': 'China'} str1 = dic.setdefault('name', 'Ice') # 有则查 print(str1) # Ice-冰鸽 str1 = dic.setdefault('nam', 'Ice') # 无则增 print(str1) # Ice print(dic) # {'name': 'Ice-冰鸽', 'age': 0, 'country': 'China', 'nam': 'Ice'}
当然根据键值赋值也可以实现改,将在字典的改详细说明。
python可以用pop、popitem函数实现元素的删除。
dic = {'name': 'Ice-冰鸽', 'age': 0, 'country': 'China'} str1 = dic.pop('name') # 去除指定键值和对应的值,返回对应值 print(str1) # Ice-冰鸽 str1 = dic.popitem() # 去除最后一次添加进字典的元素,并以元组形式返回该元素 print(str1) # ('country', 'China') print(dic) # {'age': 0}
通过对键值直接赋值修改内容。口诀:有则改,无则增
dic = {'name': 'Ice-冰鸽', 'age': 0, 'country': 'China'} dic['name'] = 'Ice' # 有则改 print(dic) # {'name': 'Ice', 'age': 0, 'country': 'China'} dic['nam'] = 'Ice' # 无则增 print(dic) # {'name': 'Ice', 'age': 0, 'country': 'China', 'nam': 'Ice'}
在字典的定义中我们已经接触到字典可以通过键值查找值,但是他存在报错的缺点。
dic = {'name': 'Ice-冰鸽', 'age': 0, 'country': 'China'} str1 = dic['name'] print(str1) # Ice-冰鸽 str1 = dic.get('n') # 用get函数如果查找不到值会返回空字符串而不会报错 print(str1) # None
和列表等字典也有清空的函数是clear函数
dic.clear()
通过keys函数可以取出所有键值,返回值是字典键值类型。
dic = {'name': 'Ice-冰鸽', 'age': 0, 'country': 'China'} a = dic.keys() # 取出字典中的所有键值 print(a) # dict_keys(['name', 'age', 'country']) print(type(a)) # <class 'dict_keys'>
同理用values函数可以取出所有值。
dic = {'name': 'Ice-冰鸽', 'age': 0, 'country': 'China'} a = dic.values() # 取出字典中的所有值 print(a) # dict_values(['Ice-冰鸽', 0, 'China']) print(type(a)) # <class 'dict_values'>
dic = {'name': 'Ice-冰鸽', 'age': 0, 'country': 'China'} a = dic.items() # 取出字典中的所有键值对 print(a) # dict_items([('name', 'Ice-冰鸽'), ('age', 0), ('country', 'China')]) print(type(a)) # <class 'dict_items'>
喜欢的话可以点赞转发加关注,后续会更新其他python学习内容。当然这也是我现学的内容,所以更新速度不会很快,但是我也会尽快更新。
ps:现在关注我,以后就是老粉啦!!!
下篇预告:集合。