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

  • 相关阅读:
    java中sleep()和wait()区别
    那些年遇到的坑--------“集合转数组”
    HashMap中推荐使用entrySet方式遍历Map类集合KV而不是keySet方式遍历
    java.util.ConcurrentModificationException 异常原因和解决方法
    java.lang.Exception: No tests found matching
    https和http的主要区别
    交换性别sql
    判断奇偶数
    Jmeter安装使用
    java.io.EOFException: Unexpected EOF read on the socket
  • 原文地址:https://www.cnblogs.com/will-wu/p/13234952.html
Copyright © 2020-2023  润新知