zoukankan      html  css  js  c++  java
  • Python基础汇总005_字典dict和collections.OrderedDict有序字典、pkl文件

    1.dict简介

    字典是另一种可变容器模型,且可存储任意类型对象

    字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

    d = {key1 : value1, key2 : value2 }

    键必须是唯一的,但值则不必

    值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

    一个简单的字典实例:

    dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

    注意:python 3.7 中字典是有序的(每次执行打印,顺序不会发生改变),从3.6开始字典都是有序的,并且从3.7开始这成了正式的Python语言特性

    如果要使用有序dict,建议用OrderedDict

    2.访问字典里的值

    可以使用键来取其对应的值,格式:字典名[键名],如下实例:

    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    
    print("dict['Name']: ", dict['Name'])
    print("dict['Age']: ", dict['Age'])

    控制台输出:

    3.修改字典和向字典中添加新内容

    字典是一种动态结构,可随时在其中添加键值对。格式:字典名[键名]=值,如:

    修改字典中的值,格式:字典名[键名]=新值,如:

    dict1 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    print('原字典:',dict1)
    dict1['Age'] = 8  # 更新 Age
    dict1['School'] = "菜鸟教程"  # 添加新的key-value键值对
    
    print("dict1['Age']: ", dict1['Age'])
    print("dict1['School']: ", dict1['School'])
    print('修改后字典:',dict1)

    控制台输出:

    4.字典内置函数

    (1) len(dict)函数 

    计算字典元素个数,即返回字典中键值对的数量

    dict1 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    print(len(dict1))

    控制台输出:

    (2) str(dict)
    输出字典,以可打印的字符串表示。通俗理解:字典转字符串

    dict1 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    a=str(dict1)
    print(a)

    控制台输出:

    5. 遍历字典

    (1)遍历所有的键值对

    Python 字典内置方法 items() 方法以列表返回可遍历的(键, 值) 元组数组。返回可遍历的(键, 值) 元组数组

    可以使用for循环遍历所有的键值对,如:

    dates = {'monday': 1, 'tuesday': 2, 'wednesday': 3, 'thursday': 4, 'friday': 5, 'saturday': 6, 'sunday': 7}
    print(dates.items())
    for key, value in dates.items():
        print("key:" + key)
        print("value:" + str(value))

    控制台输出:

    D:softwaretoolsanacondapython.exe D:/pycharmprojects/hoteltest01/hoteltest01/testpy/test14.py
    dict_items([('monday', 1), ('tuesday', 2), ('wednesday', 3), ('thursday', 4), ('friday', 5), ('saturday', 6), ('sunday', 7)])
    key:monday
    value:1
    key:tuesday
    value:2
    key:wednesday
    value:3
    key:thursday
    value:4
    key:friday
    value:5
    key:saturday
    value:6
    key:sunday
    value:7
    
    Process finished with exit code 0

    (2)遍历字典中的所有键

    Python3 字典 keys() 方法返回一个可迭代对象,可以使用 list() 来转换为列表。

    可以使用keys()方法返回所有的键列表,如:

    dates = {'monday': 1, 'tuesday': 2, 'wednesday': 3, 'thursday': 4, 'friday': 5, 'saturday': 6, 'sunday': 7}
    print(dates.keys())
    for key in dates.keys():
        print("key:" + key)

    控制台输出:

    D:softwaretoolsanacondapython.exe D:/pycharmprojects/hoteltest01/hoteltest01/testpy/test14.py
    dict_keys(['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'])
    key:monday
    key:tuesday
    key:wednesday
    key:thursday
    key:friday
    key:saturday
    key:sunday
    
    Process finished with exit code 0

    (3)遍历字典中的所有值

    可以使用values()方法,返回字典所有的值列表。如:

    dates = {'monday': 1, 'tuesday': 2, 'wednesday': 3, 'thursday': 4, 'friday': 5, 'saturday': 6, 'sunday': 7}
    print(dates)
    for value in dates.values():
        print("value:" + str(value))

    控制台输出:

    D:softwaretoolsanacondapython.exe D:/pycharmprojects/hoteltest01/hoteltest01/testpy/test14.py
    {'monday': 1, 'tuesday': 2, 'wednesday': 3, 'thursday': 4, 'friday': 5, 'saturday': 6, 'sunday': 7}
    value:1
    value:2
    value:3
    value:4
    value:5
    value:6
    value:7
    
    Process finished with exit code 0

    6.collections.OrderedDict

    Python内置四种基本container:list, dict, set, tuple,collections模块为其补充。OrderedDict为collections中一个容器。一言以蔽之,是为记住插入顺序的dict.

    OrderedDict和Dict一样,但是它记住了item插入到字典的顺序。当对有序字典进行迭代时,item会按照第一次插入到字典的顺序返回。

    很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集、集合),里面自带了一个子类

    OrderedDict,实现了对字典对象中元素的排序

    d1 = {'banana': 3, 'apple': 4}
    d2 = {'apple': 4,'banana': 3}
    od1 = OrderedDict({'banana': 3, 'apple': 4})
    od2 = OrderedDict({'apple': 4, 'banana': 3})
    print(od1 == od2)
    print(d2 == d1)

    控制台输出:

    7.pkl文件的理解

    pkl文件的理解为:

      1)python中有一种存储方式,可以存储为.pkl文件。

      2)该存储方式,可以将python项目过程中用到的一些暂时变量、或者需要提取、暂存的字符串、列表、字典等数据保存起来。

      3)保存方式就是保存到创建的.pkl文件里面。

      4)然后需要使用的时候再 open,load。

        if config.save_pkl:
            torch.save(obj=data_dict, f=os.path.join(config.pkl_directory, config.pkl_data))

     参考文献:

    https://blog.csdn.net/baidu_35218040/article/details/81134563

  • 相关阅读:
    Rsync
    SpringCloud-Eureka
    mysql-主从复制
    java中延迟任务的处理方式
    mysql-分组
    rpm相关
    shell中#*,##*,#*,##*,% *,%% *的含义及用法
    cygwin的用途
    cocos2d-lua-win
    ant打包遇到的问题
  • 原文地址:https://www.cnblogs.com/luckyplj/p/13398831.html
Copyright © 2011-2022 走看看