我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。
上篇文章我们通过举例学习了python 中元组的定义及相关操作。今天详细讲述字典的定义及相关的操作,也是经常使用到的。
1、字典的定义
字典是由{}括住的,内容以“键-值对”的形式存储的无序序列。
字典的主要特点如下:
- 字典是通过键来读取的,不是像列表那样使用索引读取;
- 字典是无序的,各项是从左到右随机排序的,保存在字典中的项没有特定的顺序;
- 字典是可变的,可以进行嵌套;
- 字典中的键必须是唯一的。不允许同一个键出现两次;
- 字典中的键必须不可变,所以可以使用数字、字符串、或者元组来作为键,不可使用列表。
2、字典的创建
1)使用定义创建字典
使用定义的方法创建字典,语法如下:
dictionary_name = {“key1”:”value1”, “key2”:”value2”, “key3”:”value3”,…, “keyn”:”valuen”}
参数说明:dictionary_name 为字典的名称
“key1”:”value1” :为键-值
举例说明:
dictionary_name = {"username":"张三","sex":"男","address":"北京天安城楼"}
print(dictionary_name)
输出结果:
创建空子典:
dictionary_emp = {}
print(dictionary_emp)
输出:{}
2)通过映射函数创建字典
具体的语法参考:dictionary_name = dict(zip(list1,list2))
参数说明:zip() 函数用于将多个列表或者元组对应位置的元素组合为元组。
List1:表示一个列表,用于指定要生成字典的键
List2: 表示一个列表,用于指定要生成字典的值
举例说明:例如家庭成员分别对应的年龄
family_name = ["爸爸","妈妈","哥哥","姐姐","小米"]
years_old = [40,43,12,11,5]
dictionary_family = dict(zip(family_name,years_old)) #通过dict(zip()) 来创建字典
print(dictionary_family)
输出结果:
3)通过给定的键-值对 创建字典
语法格式:dictionary_name = dict(key 1 =value 1, key 2=value 2, key 3=value 3,…key n=value n)
就是dict(键=值,….),比较简单,我们直接举例说明。
dict_name = dict(爸爸=40,妈妈=43,哥哥=12) #注意,不要写成了“爸爸”
print(dict_name)
输出结果如下:
{'爸爸': 40, '妈妈': 43, '哥哥': 12}
另外,还可以使用dict 对象的fromkeys() 方法创建值为空的字典。
参考:dict_name = dict. Fromkeys(list1) #创建list1为键,值为空的字典
举个例子:
family = ["爸爸","妈妈","哥哥","姐姐","小米"]
dict_name_f = dict.fromkeys(family)
print(dict_name_f)
输出结果:
{'爸爸': None, '妈妈': None, '哥哥': None, '姐姐': None, '小米': None}
3、字典的删除和清空
删除字典:del dict_name #删除整个字典
清空字典:dict_name.clear #删除字典中全部元素
比较简单,大家有个印象就好。
4、访问字典的操作
1)输出整个字典
Print(dict_name)
这个比较简单,前面一直在使用了。
2)通过键访问字典
{'爸爸': 40, '妈妈': 43, '哥哥': 12, '姐姐': 11, '小米': 5}
假如上面的字典,对应的家庭成员相应的年龄,想要获取小米的年龄
对应代码:Dict[对应的键]
family_name = ["爸爸","妈妈","哥哥","姐姐","小米"]
years_old = [40,43,12,11,5]
dictionary_family = dict(zip(family_name,years_old))
print(dictionary_family)
print(dictionary_family["小米"])
输出:
另外,还可以使用字典对象的get()方法获取指定键的值
语法格式:dict_name.get(key[,default])
参数说明:key 是指定的键,default 是可选项,用于当指定的键不存在时,返回一个默认值,如果省略返回None
举个小栗子:
family_name = ["爸爸","妈妈","哥哥","姐姐","小米"]
years_old = [40,43,12,11,5]
dictionary_family = dict(zip(family_name,years_old))
print(dictionary_family)
print(dictionary_family.get("小米"))
print(dictionary_family.get("弟弟"))
print(dictionary_family.get("弟弟","字典里没有这个人"))
输出结果:
5、遍历字典
1)使用字典item()方法访问字典
使用方法:dict_name.items()
Item()方法的返回值是可遍历的“键-值对”元组列表。输出字典全部“键-值对”方法:
family_name = ["爸爸","妈妈","哥哥","姐姐","小米"]
years_old = [40,43,12,11,5]
dictionary_family = dict(zip(family_name,years_old))
print(dictionary_family)
for item in dictionary_family.items():
print(item)
输出:
2)循环输出键-值
分别输出key和value:
family_name = ["爸爸","妈妈","哥哥","姐姐","小米"]
years_old = [40,43,12,11,5]
dictionary_family = dict(zip(family_name,years_old))
print(dictionary_family)
for key,value in dictionary_family.items():
print(key,"的年龄是:",value)
输出如下;
6、字典中添加元素
添加元素方法:dict_name [key] = value
比较容易理解,直接举例:家庭的字典添加了妹妹
family_name = ["爸爸","妈妈","哥哥","姐姐","小米"]
years_old = [40,43,12,11,5]
dictionary_family = dict(zip(family_name,years_old))
print(dictionary_family)
dictionary_family ["妹妹"] = 3
print(dictionary_family)
7、字典里修改元素
字典的键不能重复,直接添加元素,但是键和已有相同就会覆盖对应键的值,从而来完成修改:
将上面小米修改为8岁:
family_name = ["爸爸","妈妈","哥哥","姐姐","小米"]
years_old = [40,43,12,11,5]
dictionary_family = dict(zip(family_name,years_old))
print(dictionary_family)
dictionary_family ["小米"] = 8
8、删除字典中元素
语法: del dict_name[key]
如:删除小米这个成员信息
9、字典推导式
使用字典的推导式可以快速的生成一个字典。例如:我们生成包含5个随机数的字典,
其中字典的键使用数字表示:
import random
random_dict = {i:random.randint(100,1000) for i in range(10,15)}
print(random_dict)
输出:
{10: 177, 11: 819, 12: 889, 13: 622, 14: 532}
今天先写到这里了,每天进步一点点。今天你加油了吗!