1、字典的定义
定义格式:
字典名 = {键值1:实值1,键值1:实值1.......}
字典的键值又叫key,实值又叫value;而键值对是这样的: key:value,这是一个键值对,与列表元组一样也称之为元素
实例:
# 定义一个字典 my_dict = {'name':'小明','age':23,'hometown':'中国广东'}
每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})
键必须独一无二,且不能修改,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组
定义空字典
1 # 定义一个空字典 2 my_dict1 ={} 3 print(my_dict) 4 # 或者 5 my_dict2 = dict{} 6 print(type(my_dict2))
2、字典数据的获取
字符串、列表、元组可以通过下标索引查找获取数据,而字典获取数据是依赖键值获取,如下:
# 定义一个字典 my_dict = {'name':'小明','age':23,'hometown':'中国广东'} # 获取名字 print(my_dict['name'])
若获取的key值 在字典中不存在,报错
3、修改字典(增加元素、修改元素、删除元素)
3.1、修改元素
字典中的数据(value值)是可以修改的,通过key找到对应的value即可,通过key获取对应的value的值进行修改
1 # 定义一个字典 2 my_dict = {'name':'小明','age':23,'hometown':'中国广东'} 3 # 通过获取key值对相对应的value值进行修改 4 # 将age的值改为33 5 my_dict['age'] = 33 6 # 将hometown的值改为中国广东广州 7 my_dict['hometown'] = '中国广东广州' 8 # 打印 9 print(my_dict)
3.2、添加元素
格式:字典名[key] = value
使用此格式,若key不存在,添加一组键值对,若key已经存在,则覆盖原来的value,例如:
my_dict = {'name':'小明','age':23,'hometown':'中国广东'} # 把一个value值赋给不存在的key my_dict['007'] = '电影' # 打印 print(my_diict)
打印结果:
{'name': '小明', 0.3: 23, 'hometown': '中国广东', '007': '电影'}
可见成功添加一个元素
3.3、删除一个元素
删除元素格式:del 字典名[key] (实则是借用内置函数del())
my_dict = {'name': '小明', 0.3: 23, 'hometown': '中国广东', '007': '电影'} # 删除已经存在的元素 '007': '电影' del my_dict['007'] print(my_dict)
运行结果:
{'name': '小明', 0.3: 23, 'hometown': '中国广东'}
可见已成功删除存在的元素
4、字典常见的操作
4.1、len() 这是python的内置函数,计算数量的函数
my_dict = {'name': '小明', 0.3: 23, 'hometown': '中国广东'} # 统计字典的元素个数 l = len(my_dict) print(l)
运行结果是:3
代表字典有3个元素
4.2、keys()
这是字典的内置方法,返回一个包含字典所有key值的列表
my_dict = {'name': '小明', 0.3: 23, 'hometown': '中国广东'} # 获取字典的key的值 k = my_dict.keys() print(k)# 转换成列表形式:print(list(keys))
打印结果:dict_keys(['name', 0.3, 'hometown'])
可以转换成列表形式:print(list(keys))
4.3、values()
字典的内置方法,以列表形式返回字典中的所有value值,使用方法与keys()类似
4.4、items()
字典的内置方法,以列表形式返回元素(返回结果的最外层是一个列表,每个元素是一个元组)
my_dict = {'name': '小明', 0.3: 23, 'hometown': '中国广东'} # 获取字典的元素 items = my_dict.items() print(items)
运行结果:dict_items([('name', '小明'), (0.3, 23), ('hometown', '中国广东')])
4.5、clear()
字典的内置方法,清空字典的元素
my_dict = {'name1': '小明', 0.3: 23, 'name': '中国广东'} my_dict.clear() print(my_dict)
打印结果:{} (字典变成空字典)
5、字典的遍历
5.1、for循环遍历
my_dict = {'name':'好的','项目':'造反'} # 字典元素的遍历 for it in my_dict.items(): print(it) # 字典key的遍历 for it in my_dict.keys(): print(it) # 字典value的遍历 for it in my_dict.values(): print(it)
5.2、while循环遍历
略..............
6、字典键的特性
6.1、不允许同一个键的值出现两次,键名字不能重复(若重复,python自动把前面重复的键值覆盖掉,只留 后面的那个元素)
my_dict = {'name': '小明', 0.3: 23, 'name': '中国广东'} print(my_dict)
运行结果:{'name': '中国广东', 0.3: 23}
6.2、键的值必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行
my_dict = {['name']: '小明', 0.3: 23, 'name': '中国广东'} print(my_dict)
运行结果:TypeError: unhashable type: 'list'(报错,list是不可能的类型)