zoukankan      html  css  js  c++  java
  • python基础五之字典

    python数据的可变性

      通过数据的可变性,可将数据分为可变数据类型不可变数据类型。

      可变数据类型:list,dict (不可哈希)

      不可变数据类型:元祖,bool,int,str (可哈希)

    python字典详解

      字典的键(key),必须是不可变数据数据类型(可哈希),值(value)可以是任意类型。

      字典的优点:通过哈希表运用二分法可以进行快速高效的处理。特点:py3.5及其之前的版本字典是无序的

      增加

      第一种

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    # dict[key] = value 字典里没有这个键,则随机添加,有的话,原有值被覆盖
    dic['hobby'] = 'read'  # 添加
    dic['name'] = 'zxc'   # 覆盖
    print(dic)

      第二种

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    # dict.setdefault(key, value) 字典里没有此键,则随机添加,有 则不变
    dic.setdefault('hobby', 'read')  # 添加
    dic.setdefault('name', 'zxc')   # 不变
    print(dic)

      删除

      第一种

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    # dict.pop(key, 返回值) 有返回值 字典里有此键,则删除,会返回键对应的值  没有,则返回‘返回值’
    print(dic.pop('name'))   # 输出jin
    print(dic.pop('name'))  # 报错   没有此键的话必须要设返回值
    print(dic.pop('hobby', None))  # 输出None

      第二种

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    # dict.popitem() 随机删除,有返回值,会以元祖(key, value)的形式返回
    print(dic.popitem())  # 输出('sex', 'male')

      第三种

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    # dict.clear() 清空字典 有返回值
    print(dic.clear())  # None
    print(dic)

      第四种

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    # del dict 删除字典
    del dic
    # del dict[key] key不存在,报错
    del dic['name']
    # del dic['hobby']  # 报错
    print(dic)

      修改 

      第一种

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    # dict[key] = value 通过赋值直接修改
    dic['name'] = 'zxc'
    print(dic)

      第二种

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    # dict.update(dict_new) 将新的字典覆盖添加到dict
    dic_new = {'name': 'zxc', 'hobby': 'read'}
    dic.update(dic_new)
    print(dic)

      查看

      第一种

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    # dict.keys() 查看字典的键
    print(dic.keys())   # ['name', 'sex', 'age']
    # dict.valus()  查看字典的值
    print(dic.values())   # ['jin', 18, 'male']
    # dict.items()  查看键值对
    print(dic.items())   # [('age', 18), ('sex', 'male'), ('name', 'jin')]

      第二种

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    # dict[key] 查key的值 没有key报错
    print(dic['name'])   # jin
    # print(dic['hobby'])  # 报错

      第三种

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    # dict.get(key, 返回值) 查key的值 没有key,输出‘返回值’
    print(dic.get('name'))  # jin
    print(dic.get('hobby'))  # 没有 默认返回值是None
    print(dic.get('hobby', '没有此键'))   # 没有此键

      字典的嵌套

      根据嵌套的数据类型进行对应的操作。

    # 嵌套字典的操作
    dic = {
        'name': 'zxc',
        'message': {
                'age': 24,
                'height': 174,
                'weight': 140,
                'hobby': ['read', 'computer game', 'running']
        }
    }
    
    # 嵌套的是字典就按字典的操作方式
    # dic['message'].setdefault('nationality', 'China')
    # dic['message']['weight'] = 150
    # print(dic)
    
    # 嵌套的是列表就按列表的操作方式
    dic['message']['hobby'].insert(1, 'study')
    dic['message']['hobby'][0] = 'music'
    print(dic)
    
    # 嵌套的是字符串就按字符串的操作方式
    print(dic['message']['hobby'][1].upper())
    View Code

      

  • 相关阅读:
    【每天都要看一下】
    【这里有别人的经验,也有好玩的发现】
    【WPF】Listbox模板内button点击选中当前listboxItem
    【WFP】弹出窗口不在win10 任务列表里显示的方法
    PSD路径转换为 WPF path 的data
    【WPF】Listbox内item的样式替换默认选中样式和鼠标滑过样式
    【WPF】ListBox1内嵌套ListBox2 2的滑轮滚动阻止1的滚动解决方法
    【C#】文本框拼音检索汉字
    【WPF】Datagrid显示最低下一跳
    【C#】绝对随机数
  • 原文地址:https://www.cnblogs.com/zxc-Weblog/p/8073911.html
Copyright © 2011-2022 走看看