python 3 基础之字典,详解

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是不可能的类型)

原文地址:https://www.cnblogs.com/will-wu/p/13234952.html