当前位置: 首页 > article >正文

Python中的常用库

一、collections

collections是 Python 标准库中的一个模块,提供了一些专门的容器数据类型,能够帮助你更高效地处理常见的数据结构操作。

1、Counter

Counter 是一个字典的子类,用于计数可哈希对象。它会统计对象的出现次数,并能快速获取某个元素出现的次数。

特点

  • 它的键是可哈希的元素,值是该元素的计数。
  • 可以使用常见的字典操作,也支持一些特定的方法,如 .most_common() 获取出现频率最高的元素。
from collections import Counter

# 计数元素出现次数
counter = Counter(['a', 'b', 'c', 'a', 'b', 'a'])
print(counter)  # 输出: Counter({'a': 3, 'b': 2, 'c': 1})

# 获取出现频率最高的两个元素
print(counter.most_common(2))  # 输出: [('a', 3), ('b', 2)]

 2、defaultdict

defaultdictdict 类的一个子类,它会为字典中不存在的键提供一个默认值。defaultdict 在查找时,不会抛出 KeyError 异常,而是返回一个默认值。

特点

  • 需要指定一个工厂函数来定义默认值。
  • 工厂函数可以是任何可调用对象,如 intlistset 等。
from collections import defaultdict

# 创建一个默认值为 0 的字典
dd = defaultdict(int)
dd['apple'] += 1
dd['banana'] += 2
print(dd)  # 输出: defaultdict(<class 'int'>, {'apple': 1, 'banana': 2})

【补充】字典相关操作

①dic.get(key, default=None):返回指定键的值,如果键不在字典中返回 default 设置的默认值

②sorted(dic):用于对 字典的键(keys) 进行排序,并返回一个 排序后的键列表。它不会对字典本身进行排序,而是返回一个新的 排序后的列表,列表中只包含键

③sorted(dic.items(), key=lambda x: x[1]):按照值value大小进行排序

 3、deque

deque(双端队列)是一个可以从两端快速插入和删除元素的容器。相比于列表(list),deque 在两端操作的时间复杂度是常数时间 O(1),而 list 在两端操作的时间复杂度是 O(n)。

特点

  • 适用于需要频繁进行队列或栈操作的场景。
  • 提供了 .append().appendleft().pop().popleft() 等方法。
from collections import deque

# 创建一个双端队列
dq = deque([1, 2, 3])
dq.append(4)        # 从右侧添加
dq.appendleft(0)    # 从左侧添加
print(dq)  # 输出: deque([0, 1, 2, 3, 4])

dq.pop()            # 从右侧删除
dq.popleft()        # 从左侧删除
print(dq)  # 输出: deque([1, 2, 3])

二、处理字符串

1、ord()

print("A 对应的 ASCII 值为:", ord('A'))  # 输出:A 对应的 ASCII 值为: 65

 2、split()

str.split(sep=None, maxsplit=-1) 是最常用的字符串分割方法

  • sep: 可选,指定分隔符。如果省略或为 None,则默认按空白字符(空格、制表符等)分割。
  • maxsplit: 可选,分割次数的最大值,默认为 -1,即分割所有的可能。
# 按空格分割
text = "Python is great"
result = text.split()
print(result)  # 输出: ['Python', 'is', 'great']

# 按逗号分割
text = "apple,banana,cherry"
result = text.split(",")
print(result)  #

3、rjust()和ljust()

rjust()是字符串的一个方法,用于将字符串右对齐,并在其左边填充指定的字符直到达到指定的长度。

反之,ljust()就是左对齐

# 基本语法
string.rjust(width, fillchar=' ')
  • 参数:

    • width:指定返回的字符串的总长度。若 width 大于原始字符串的长度,则会在字符串的左侧填充字符。
    • fillchar:用于填充的字符,默认为空格(' ')。可以指定其他字符。
  • 返回值:

    • 返回一个新的字符串,其总长度为 width,如果原字符串长度小于 width,则在其左侧填充指定的字符。

4、isalpha()

isalpha() 是 Python 字符串str)的一个方法,用于判断字符串是否只包含字母(A-Z 和 a-z)。

s = "Hello"
print(s.isalpha())  # True,因为只包含字母

三、其他

1、sort()和sorted()

都是升序排序(默认) 

①ist.sort(*, key=None, reverse=False) 只能用于列表排序,返回None,直接修改原列表

②sorted(iterable, *, key=None, reverse=False)可用于列表、元组、字符串、字典等可迭代对象。返回一个新列表,原始数据不会被改变。

  • key: (可选)指定一个函数,作为排序的关键。key 参数接收一个函数,这个函数用于从每个列表元素中提取比较值。默认值是 None,即直接比较列表元素本身。

  • reverse: (可选)如果设置为 True,列表将按降序排序;如果是 False(默认值),则按升序排序。

【补充】 sorted() 对 全是英文单词的列表 进行排序时,默认按 ASCII 值(Unicode 编码)升序排列,即 按照字典序(从字符串的第一个字符开始逐个比较,直到找到第一个不同的位置,通过比较这个位置字符对应的 Ascii码得出字符串的大小) 进行排序。

# 按照第二个元素排序
data = [(1, "apple"), (3, "banana"), (2, "cherry")]
sorted_data = sorted(data, key=lambda x: x[1])  # 按字母顺序排序
print(sorted_data)

2、map

map(function, iterable, ...)
  • function: 一个函数,用于对可迭代对象的每个元素进行处理。
  • iterable: 一个或多个可迭代对象(如列表、元组、字符串等)。可以传入多个可迭代对象,function 会同时对它们进行操作。

返回值:一个迭代器,包含了 function 应用到 iterable 中每个元素后的结果。如果你需要得到一个列表或其他类型的数据结构,可以将返回值传入 list()tuple() 函数进行转换。

# 把所有读取到的字符串元素都转换成整数类型
map(int, input().split()) 

3、lambda

lambda函数是 Python 中的一种匿名函数,没有函数名称,通常用于创建简单的、一行的函数。

lambda arguments: expression
  • arguments: 输入参数,可以是一个或多个。
  • expression: 返回的表达式,它会自动返回,不需要 return 关键字。

http://www.kler.cn/a/573984.html

相关文章:

  • Java中的集合
  • 国产ARM主机安装Ansible
  • vue3的npm配置修改源
  • DeepSeek携手防爆对讲机,大胆探索石化行业智能化升级
  • c#实现Modbus TCP/IP与RS 485数据交换的实例
  • 深入理解设计模式中的单例模式(Singleton Pattern)
  • 人工智能之数学基础:伴随矩阵
  • redis菜鸟教程
  • 【Linux篇】版本控制器-Git
  • nvidia驱动升级-ubuntu 1804
  • blender 渲染obj
  • 开发社交陪玩app小程序
  • 前端流式输出深度解析:技术原理、实战应用与性能优化
  • 计算光学成像与光学计算概论
  • GCC RISCV 后端 -- cc1 入口
  • 【五.LangChain技术与应用】【30.LangChain Agent小案例2:复杂场景下的代理设计】
  • 客户端及时通讯系统(1)
  • 【YOLOv12改进trick】StarBlock引入YOLOv12,创新涨点优化,含创新点Python代码,方便发论文
  • postman--接口测试工具安装和使用教程
  • LinkedList 双向链表