zoukankan      html  css  js  c++  java
  • Python基础学习07--字典

    字典

    字典是一种组合数据,没有顺序的组合数据,数据以键值对形式出现

    字典中的数据每个都有键值对组成,即kv对

    • key: 必须是可哈希的值,比如int,string,float,tuple;但是list,set,dict 不行
    • value: 任何值

     

    创建字典

    # 创建空字典
    dict1 = {}
    print('dict1的数据类型为:',type(dict1))
    print('dict1 :',dict1)
    
    # 创建存在数据的字典
    dict2 = {1:'Apple',2:'OnePlus'}
    print('dict2 :',dict2)
    
    # 创建多嵌套字典
    dict3 = {'area':'beijing','user':{'user1':{'name':'wilson','tel':13800},'user2':{'name':'tom','tel':138000}}}
    print('dict3的数据类型为:',type(dict3))
    print('dict3 :',dict3)

    输出结果如下:

    dict1的数据类型为: <class 'dict'>
    dict1 : {}
    
    dict2 : {1: 'Apple', 2: 'OnePlus'}
    
    dict3的数据类型为: <class 'dict'>
    dict3 : {'area': 'beijing', 'user': {'user1': {'name': 'wilson', 'tel': 13800}, 'user2': {'name': 'tom', 'tel': 138000}}}

    上面的多嵌套字典可以看出,输出结果较长,查看较为困难,这时候需要导入pprint模块,方面查看数据

    import pprint
    dict4 = {'area':'beijing','user':{'user1':{'name':'wilson','tel':13800},'user2':{'name':'tom','tel':138000}}}
    pprint.pprint(dict4)

    输出格式如下:

    {'area': 'beijing',
     'user': {'user1': {'name': 'wilson', 'tel': 13800},
              'user2': {'name': 'tom', 'tel': 138000}}}

    访问字典数据

    # 查看key为1的值
    dict5 = {1:'Apple',2:'OnePlus'}
    print('key为1的值 :',dict5[1])
    
    # 查看user2的tel值
    dict6 = {'area':'beijing','user':{'user1':{'name':'wilson','tel':13800},'user2':{'name':'tom','tel':138000}}}
    print('user2的tel值 :',dict6['user']['user2']['tel'])

    输出结果如下:

    key为1的值 : Apple
    
    user2的tel值 : 138000

    更改字典中的值

    dict7 = {1:'Apple',2:'OnePlus'}
    print('dict7-前 :',dict7)
    
    dict7[2] = 'Iphone'     # 修改key=2的值为'Iphone'
    print('dict7-后 :',dict7)

    输出结果如下:

    dict7-前 : {1: 'Apple', 2: 'OnePlus'}
    dict7-后 : {1: 'Apple', 2: 'Iphone'}

    删除字典元素

    dict8 = {1:'Apple',2:'OnePlus'}
    print('dict8-前 :',dict8)
    
    del dict8[2]            # 删除key=2的键值对
    print('dict8-后 :',dict8)

    输出结果如下:

    dict8-前 : {1: 'Apple', 2: 'OnePlus'}
    dict8-后 : {1: 'Apple'}

    成员检测--in , not in

    成员检测检测的是key内容

    dict9 = {1:'Apple',2:'OnePlus'}
    
    print('1 在字典中:',1 in dict9)           # 检测 1 是否在dict9中
    print('Apple在字典中:','Apple' in dict9)  # 检测 Apple 是否在dict9中 

    输出结果如下:

    1 在字典中: True
    Apple在字典中: False 

     字典的常用方法

    1、item()

        以列表返回可遍历的(键, 值) 元组数组

    dict10 = {1:'Apple',2:'OnePlus'}
    
    d1 = dict10.items()
    
    print('d1的数据类型:',type(d1))
    print('d1 :',d1)
    d1的数据类型: <class 'dict_items'>
    d1 :  dict_items([(1, 'Apple'), (2, 'OnePlus')])

    2、keys

        返回一个迭代器,可以使用 list() 来转换为列表

    dict10 = {1:'Apple',2:'OnePlus'}
    
    d2 = dict10.keys()
    
    print('d2的数据类型:',type(d2))
    print('d2 :',d2)
    d2的数据类型: <class 'dict_keys'>
    d2 : dict_keys([1, 2])

    3、keys()

        返回一个迭代器,可以使用 list() 来转换为列表

    dict10 = {1:'Apple',2:'OnePlus'}
    
    d3 = dict10.values()
    
    print('d3的数据类型:',type(d3))
    print('d3 :',d3)
    d3的数据类型: <class 'dict_values'>
    d3 : dict_values(['Apple', 'OnePlus'])

    4、get()

        返回指定键的值,如果值不在字典中返回默认值。

    dict10 = {1:'Apple',2:'OnePlus'}
    
    d4 = dict10.get(1)
    d5 = dict10.get(3,None)
    
    print('1 的值为 :',d4)
    print('3 的值为 :',d5)
    1 的值为 : Apple
    3 的值为 : None
  • 相关阅读:
    【SAS NOTE】OUTPUT
    【SAS NOTES】_NULL_
    【SAS NOTE】sas 9.2 安装
    【SAS NOTE】FREQ
    纯数学教程 Page 203 例XLI (1)
    纯数学教程 Page 203 例XLI (3)
    纯数学教程 Page 203 例XLI (2)
    Prove Cauchy's inequality by induction
    纯数学教程 Page 325 例LXVIII (15) 调和级数发散
    纯数学教程 Page 325 例LXVIII (15) 调和级数发散
  • 原文地址:https://www.cnblogs.com/wilson-5133/p/10352008.html
Copyright © 2011-2022 走看看