zoukankan      html  css  js  c++  java
  • python中字典详解

    字典特点

    字典是python中最常用的数据类型,主要的特点如下:

    1.字典的关键字:dict    字典一般是用"{}"花括号括起来的

    2.字典是无序的数据类型

    3.字典的可以存储任意数据类型(例如:字典,列表,元组,数字,字符串,集合,布尔值)

    4.字典的元素可以更改,但是如果包含的数据类型是元组,则元组里面的数据是不能进行更改,只能整体替换

    5.字典的元素是按照key-value键值对的形式存在的,key和value之间是用 ":" 冒号隔开,每个键值对之间是用逗号隔开,整个字典是用{}包括起来

    6.key的值是唯一且不可变的数据类型,例如:元组,数字,字符串,布尔值,浮点数     如果key值存在重复,那最后一个键值对会替换前面的

    7.字典的取值,是根据key进行取值因为字典是无序的数据类型,所以不能使用索引进行取值,只有列表,元组才可以使用索引取值(有索引,就代表是有序的)

    字典的常用操作

    1.定义一个空的字典方法

    dict={}

    2.创建一个字典

    dict={"name":"小张",1:"你好",0.2:[1,2,3],False:"学习",(2,3,4):9.8}   ------->(不同类型的数据,key是唯一且不可变类型,value可以是任意类型的)

    3.字典的取值

    取值单个元素:字典的取值是根据key来取的,例如:dict["name"],   输出结果为:小张               取值方法:字典名[key]  

    for循环取值:还可以通过for循环去进行元素遍历取值     方法如下:

    for value in dict.valuse():
        print(value)
    

    4.字典的长度

    如果想求字典的长度,可以使用len()内置函数          使用方法: len(dict)

    字典的常用方法:

    新增元素:dict[new_key]=new_value

    删除元素:dict.pop[key_value]

    修改元素的值:dict[old_key]=new_value

    **修改元素和新增元素的区别,修改是将旧的key值,赋予新的value,新增是创建一个新的key值,赋予新的value

    字典常用的内置函数

    1.len()     使用方法:len(dict)    计算字典的元素个数,也就是键的总数

    2.str()     使用方法:str(dict)     输出字典可打印的字符串格式,也就是将字典转换为字符串类型

    3.type()  使用方法:type(dict)  返回变量的类型,如果是字典格式的,那返回的数据类型为dict

    eg:

    例如:
    1 aa={True:"nihao",False:"LIHAI"} 2 print(aa[True],aa[False]) 3 print(type(str(aa)))
    4 print(len(aa))

    输出结果:
    nihao LIHAI #打印的为字典的单个值
    <class 'str'> #输出的为输入的变量类型
    2 #输出的为字典的长度

    字典常用的内置方法

    1.dict.clear()   删除字典内所有元素

    2.dict.pop(key,default)   删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

    3.dict.popitem()   随机删除字典中的某个键值对

    4.dict.get(key,default=None)     返回指定键的值,如果改值不在字典中,默认返回None   

    (参数解释:

    • key -- 字典中要查找的键。
    • default -- 如果指定键的值不存在时,返回该默认值。

    5.dict.keys()   以列表返回字典中的所有key值     输出格式:将所有的key值存放在一个列表中,最后以元组输出

    6.dict.values()  以列表返回字典中的所有value值     输出格式,将所有的value值存放在一个列表中,最后以元组输出

    7.dict.items()   以列表返回可遍历的(键,值)元组数组     输出格式,将每一对key和value组成一个元组,再将这些数据存放在列表中,最后以元组输出

    eg:

     1 实例:
     2 data={"name":"小张",1:"你好",0.2:[1,2,3],False:"学习",(2,3,4):9.8}
     3 print(data.items())
     4 print(data.values())
     5 print(data.keys())
     6 print(data.get((2,3,4)))
     7 data.pop(0.2)
     8 print(data)
     9 data.popitem()
    10 print(data)
    11 data.clear()
    12 print(data)

    14 输出结果: 15 dict_items([('name', '小张'), (1, '你好'), (0.2, [1, 2, 3]), (False, '学习'), ((2, 3, 4), 9.8)]) 16 dict_values(['小张', '你好', [1, 2, 3], '学习', 9.8]) 17 dict_keys(['name', 1, 0.2, False, (2, 3, 4)]) 18 9.8 19 {'name': '小张', 1: '你好', False: '学习', (2, 3, 4): 9.8} 20 {'name': '小张', 1: '你好', False: '学习'} 21 {}

    字典中几种常用的取值方式:

    from jsonpath import jsonpath
    
    #取出小蓝
    user_data={"user":"小红","name":{"年龄":18,"sex":{"hh":"aa","name":"小蓝"}}}
    
    #使用jsonpath取值
    e=jsonpath(user_data,"$..sex")[0]["name"]
    print(e)
    
    #使用一层一层取值
    e1=user_data["name"]["sex"]["name"]
    print(e1)
    
    #用for循环取值
    for value in user_data.values():
        if value=={'年龄': 18, 'sex': {'hh': 'aa', 'name': '小蓝'}}:
            print(value["sex"]["name"])
    
    #使用get的方式取值
    e2=user_data.get("name")["sex"]["name"]
    print(e2)
    
    #取出字典所有的keys和values,items(),以列表返回可遍历的(键,值)元组数组,然后通过索引进行取值
    e3=user_data.items()
    print(type(e3))
    print(list(e3)[1][1]["sex"]['name'])
    
    #取出所有的value值,然后取出对应的值
    e4=user_data.values()
    print(list(e4)[1]["sex"]["name"])
  • 相关阅读:
    C#调用JS
    C#对象序列化(2)
    C#委托和事件(2)
    C#委托和事件(1)
    Windows Mobile Ping 命令实现
    操作 SQL Server Mobile 2005 数据库的常用 C# 代码
    Pocket PC 2003数据库操作
    C#委托和事件(3)
    C#中RSA加密解密和签名与验证的实现
    使用SqlBulkCopy数据导入和复制
  • 原文地址:https://www.cnblogs.com/lucky1212/p/13466839.html
Copyright © 2011-2022 走看看