首页 > 编程语言 >python常用库(二)

python常用库(二)

时间:2024-04-03 22:30:59浏览次数:24  
标签:常用 python sys collections print Output 字典 ChainMap

文章目录

python常用库

4、sys库

4.1、 命令行参数
  • sys.argv: 这是一个包含命令行参数的列表。当你在命令行中运行一个 Python 脚本时,sys.argv 中会包含脚本的名称以及任何传递给脚本的参数。
4.2、模块导入
  • sys.modules: 这是一个字典,包含当前 Python 解释器中已加载的所有模块的信息。你可以使用它来查看已导入的模块或者手动添加模块。
4.3、退出程序
  • sys.exit([arg]): 这个函数用于退出 Python 解释器。你可以选择传递一个整数参数给 sys.exit,作为退出状态码。通常情况下,0 表示成功退出,非零值表示出错。
4.4、标准输入输出
  • sys.stdin, sys.stdout, sys.stderr: 这些变量分别代表标准输入、标准输出和标准错误流。你可以重定向这些流来进行输入输出的操作。
4.5、系统相关信息
  • sys.platform: 这个变量包含当前系统的平台信息,例如 'win32''linux' 等。
  • sys.version: 这是一个字符串,包含当前 Python 解释器的版本信息。
  • sys.path: 这是一个包含模块搜索路径的列表。你可以通过修改 sys.path 来添加或删除模块搜索路径。
4.6、内存管理
  • sys.getsizeof(obj): 这个函数返回对象 obj 占用的内存大小,单位为字节。
4.7、其他功能
  • sys.setrecursionlimit(limit): 设置递归调用的最大深度限制。
  • sys.getrecursionlimit(): 返回当前递归调用的最大深度限制。
  • sys.getdefaultencoding(): 返回 Python 解释器默认的字符编码。

5、collections库

5.1、Counter 计数器
  • Counter 类是用来统计可迭代对象中元素出现次数的工具。你可以使用 Counter 类创建一个计数器对象,并通过方法如 most_common() 来获取出现次数最多的元素。

    from collections import Counter
    
    # 创建计数器对象
    word_counts = Counter(['apple', 'banana', 'apple', 'orange', 'banana', 'apple'])
    
    # 获取出现次数最多的元素
    # most_common(1) 表示要获取出现次数最多的第一个元素,也就是说,返回一个包含出现次数最多的元素及其出现次数的元组的列表。
    most_common_word = word_counts.most_common(1)
    print(most_common_word)  # Output: [('apple', 3)]
    
5.2、defaultdict 默认字典
  • defaultdict 类是 dict 的子类,它允许你为字典的键设置默认值类型。当访问不存在的键时,defaultdict 会使用默认值类型创建一个新的键值对。

    from collections import defaultdict
    
    # 创建默认字典,指定默认值类型为列表
    fruit_inventory = defaultdict(list)
    
    # 添加水果库存信息
    fruit_inventory['apple'].append(10)
    fruit_inventory['banana'].append(20)
    fruit_inventory['apple'].append(5)
    
    print(fruit_inventory)  # Output: defaultdict(<class 'list'>, {'apple': [10, 5], 'banana': [20]})
    
5.3、OrderedDict 有序字典
  • OrderedDict 类是一种有序的字典,它会记住元素插入的顺序。与普通的字典不同,OrderedDict 的键值对会按照插入的顺序进行迭代。

    from collections import OrderedDict
    
    # 创建有序字典
    ordered_dict = OrderedDict()
    
    # 添加键值对,并保持插入顺序
    ordered_dict['a'] = 1
    ordered_dict['b'] = 2
    ordered_dict['c'] = 3
    
    print(ordered_dict)  # Output: OrderedDict([('a', 1), ('b', 2), ('c', 3)])
    
5.4、deque 双端队列
  • deque 类是一种高效的双端队列数据结构,支持从队列两端进行快速的插入和删除操作。它比使用列表实现的队列更加高效,尤其是在频繁地从队列两端进行操作时。

    from collections import deque
    
    # 创建双端队列
    d = deque([1, 2, 3])
    
    # 从左侧添加元素
    d.appendleft(0)
    print(d)  # Output: deque([0, 1, 2, 3])
    
    # 从右侧弹出元素
    last_element = d.pop()
    print(last_element)  # Output: 3
    
5.5、namedtuple 命名元组
  • namedtuple 函数可以用来创建具有命名字段的元组类型。与普通元组不同,命名元组的字段可以通过名称访问,使得代码更加清晰易懂。

    from collections import namedtuple
    
    # 创建命名元组类型
    Point = namedtuple('Point', ['x', 'y'])
    
    # 创建具有命名字段的实例
    p = Point(x=1, y=2)
    
    print(p.x, p.y)  # Output: 1 2
    
5.6、ChainMap 链式映射
  • ChainMap 类可以将多个字典或映射对象链接在一起,形成一个逻辑上的映射链。当查询键值对时,ChainMap 会按照参数列表中的顺序依次查找键值对,直到找到对应的键值对为止。因此,如果同一个键同时存在于多个映射对象中,ChainMap 会优先使用参数列表中排在前面的映射对象中的对应值。

    from collections import ChainMap
    
    # 创建两个字典
    dict1 = {'a': 1, 'b': 2}
    dict2 = {'b': 3, 'c': 4}
    
    # 创建 ChainMap 对象
    chain_map = ChainMap(dict1, dict2)
    
    # 查询键值对
    value_a = chain_map['a']
    print(value_a)  # Output: 1
    
    value_b = chain_map['b']
    print(value_b)  # Output: 2,因为 ChainMap 会按照链的顺序查找,找到 dict1 中的键 'b'
    
    value_c = chain_map['c']
    print(value_c)  # Output: 4,因为 'c' 在 dict2 中
    
    # 更具体案例
    """
    在这个案例中,ChainMap 将默认设置和用户自定义设置链接在一起,当查询设置项时会按照链的顺序依次查找,如果用户自定义了某个设置项,则会优先使用用户自定义的值,否则使用默认设置中的值。
    """
    from collections import ChainMap
    
    # 定义两个字典,分别表示默认设置和用户自定义设置
    default_settings = {'theme': 'light', 'font_size': 12}
    user_settings = {'font_size': 14, 'show_line_numbers': True}
    
    # 创建 ChainMap 对象,将默认设置和用户设置链接在一起
    settings = ChainMap(user_settings, default_settings)
    
    # 获取设置项
    theme = settings['theme']
    print(theme)  # Output: 'light',因为用户设置中没有 'theme' 键,所以会使用默认设置
    
    font_size = settings['font_size']
    print(font_size)  # Output: 14,因为用户设置中有 'font_size' 键,会优先使用用户设置中的值
    
    show_line_numbers = settings['show_line_numbers']
    print(show_line_numbers)  # Output: True,因为用户设置中有 'show_line_numbers' 键,并且值为 True
    
    # 添加新的设置项
    settings['line_spacing'] = 1.5
    
    print(settings)  # Output: ChainMap({'font_size': 14, 'show_line_numbers': True, 'line_spacing': 1.5}, {'theme': 'light', 'font_size': 12})
    
5.7、UserDict、UserList、UserString
  • UserDictUserListUserStringcollections 模块中的辅助类,它们分别用于创建自定义的字典、列表和字符串类。这些类可以作为基类来扩展和定制标准的字典、列表和字符串行为。

    from collections import UserDict
    
    # 创建自定义字典类
    class MyDict(UserDict):
        def __contains__(self, key):
            # 自定义 __contains__ 方法来判断键是否存在
            return key in self.data.keys() and self.data[key] > 0
    
    # 创建 MyDict 实例
    my_dict = MyDict({'a': 1, 'b': 2})
    
    # 判断键是否存在且值大于0
    print('a' in my_dict)  # Output: True,因为 'a' 存在且值为正数
    print('c' in my_dict)  # Output: False,因为 'c' 不存在
    
5.8、其他工具
  • ChainMap 类还提供了一些方法如 new_child() 来创建新的映射链,maps 属性来获取所有映射对象的视图等。
  • Counter 类除了统计计数外,还提供了诸如 subtract()elements() 等方法来支持计数器的运算和操作。

标签:常用,python,sys,collections,print,Output,字典,ChainMap
From: https://blog.csdn.net/LS_Ai/article/details/137359275

相关文章

  • 【阿里淘天笔试题汇总】2024-04-03-阿里淘天春招笔试题(第一套)-三语言题解(CPP/Pytho
    ......
  • 【阿里淘天笔试题汇总】2024-04-03-阿里淘天春招笔试题(第二套)-三语言题解(CPP/Pytho
    ......
  • run Python asyncio code in a Jupyter notebook
     NewJupyterlab/notebookimportasyncioimporttimeasyncdefmy_coroutine():awaitasyncio.sleep(1)print("Coroutineexecuted!")s=time.perf_counter()loop=asyncio.get_event_loop()loop.create_task(my_coroutine())asyncio.r......
  • python如何对二维数组排序
    在Python中对二维数组进行排序是一个常见的需求,可以通过多种方式实现。在本博客中,我们将讨论几种常见的方法来对二维数组进行排序。首先,我们可以使用Python的内置函数sorted()对二维数组进行排序。sorted()函数可以接受一个key参数,通过指定key参数来指定排序的方式。下面是......
  • python 如何操作pdf文件
    在Python中操作PDF文件通常涉及以下几个常见的任务:读取PDF内容、创建PDF文件、编辑PDF文件、合并PDF文件、拆分PDF文件等。下面我将介绍如何使用Python中的几个主要库来执行这些操作。读取PDF内容要读取PDF文件的内容,可以使用PyPDF2库。以下是一个简单的示例代码,演示如何......
  • Python变量类型
    Python 变量类型变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。变量赋值Python中的变量不需要声明,变量......
  • 列表嵌套字典实现简单通讯录功能 python
    contacts_list=[]#使用列表来存储字典,每个字典代表一个联系人whileTrue:print('1.增加2.删除break.退出')num=input('请输入选项:')ifnum=='1':name=input('请输入姓名:')phone=input('请输入电话:')......
  • 【Linux】在生产环境中,Linux系统排查常用命令
    问题排查文章目录问题排查top命令CPU:vmstatprocscpu内存:free硬盘:df硬盘IO:iostat网络IO:ifstat生产环境服务器变慢,诊断思路和性能评估top命令查看整机系统新能使用top命令的话,重点关注的是%CPU、%MEM、loadaverage三个指标在这个命令下,按1的话,可以看到每个C......
  • python 解析json字符串保存到对象中
    在Python中,你可以使用内置的json模块来解析JSON字符串并保存到对象中。以下是一个简单的示例:pythonimportjson#假设你有以下的JSON字符串json_string='{"name":"Alice","age":25,"city":"NewYork"}'#使用json模块的loads方法将JSON字符串解析为Python对象(在这种情况下......
  • Python有哪些常用函数?
    Python是一种功能丰富的编程语言,它提供了大量的内置函数和库函数。以下是一些常用的Python函数,它们涵盖了多个领域:基础数据类型函数:int():将一个数或字符串转换成整数。float():将一个数或字符串转换成浮点数。str():将对象转换为字符串。list():将可迭代对象转换......