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

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 关键字。

相关文章:

Python中的常用库

一、collections collections是 Python 标准库中的一个模块&#xff0c;提供了一些专门的容器数据类型&#xff0c;能够帮助你更高效地处理常见的数据结构操作。 1、Counter Counter 是一个字典的子类&#xff0c;用于计数可哈希对象。它会统计对象的出现次数&#xff0c;并…...

马尔科夫不等式和切比雪夫不等式

前言 本文隶属于专栏《机器学习数学通关指南》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 统计概率的利剑&#xff1a;掌…...

护照阅读器在汽车客运站流程中的应用

在汽车客运站的日常运营里&#xff0c;如何高效服务旅客、保障出行安全是工作重点。护照阅读器作为精准身份识别的得力工具&#xff0c;在客运站的多个关键流程&#xff0c;如自助购票、柜台购票、安检以及行李托运中&#xff0c;发挥着不可小觑的作用&#xff0c;有力地提升了…...

CentOS 7 安装Nginx-1.26.3

无论安装啥工具、首先认准了就是官网。Nginx Nginx官网下载安装包 Windows下载&#xff1a; http://nginx.org/download/nginx-1.26.3.zipLinxu下载 wget http://nginx.org/download/nginx-1.26.3.tar.gzLinux安装Nginx-1.26.3 安装之前先安装Nginx依赖包、自行选择 yum -y i…...

Unity 使用NGUI制作无限滑动列表

原理&#xff1a; 复用几个子物体&#xff0c;通过子物体的循环移动实现&#xff0c;如下图 在第一个子物体滑动到超出一定数值时&#xff0c;使其放到最下方 --------------------------------------------------------------》 然后不停的循环往复&#xff0c;向下滑动也是这…...

linux中断调用流程(arm)

文章目录 ARM架构下Linux中断处理全流程解析&#xff1a;从硬件触发到驱动调用 ⚡**一、中断触发与硬件层响应** &#x1f50c;**1. 设备触发中断** &#x1f4e1; **二、CPU阶段&#xff1a;异常入口与上下文处理** &#x1f5a5;️**1. 异常模式切换** &#x1f504;**2. 跳转…...

基于Matlab的多目标粒子群优化

在复杂系统的设计、决策与优化问题中&#xff0c;常常需要同时兼顾多个相互冲突的目标&#xff0c;多目标粒子群优化&#xff08;MOPSO&#xff09;算法应运而生&#xff0c;作为群体智能优化算法家族中的重要成员&#xff0c;它为解决此类棘手难题提供了高效且富有创新性的解决…...

【网络安全】——协议逆向与频繁序列提取:从流量中解码未知协议

目录 引言 一、为什么要结合频繁序列提取&#xff1f; 二、四步融合分析法 步骤1&#xff1a;原始流量采集与预处理 步骤2&#xff1a;多粒度序列模式挖掘 层1&#xff1a;单包内字节级频繁项 层2&#xff1a;跨数据包的行为序列 步骤3&#xff1a;关键字段定位与结构假…...

CSS 中等比例缩放的演变:从传统技巧到 aspect-ratio 属性

CSS 中等比例缩放的演变&#xff1a;从传统技巧到 aspect-ratio 属性 在响应式网页设计和多设备兼容成为主流的今天&#xff0c;如何实现元素的等比例缩放成为前端开发中一个重要的课题。无论是图片、视频还是其他容器&#xff0c;都常常需要保持固定的宽高比&#xff0c;以便…...

系统架构设计师—计算机基础篇—进度管理

文章目录 基本概念进程的特征进程的状态前趋图 进程的通信进程的互斥做题方法 进程的同步PV操作做题方法 基本概念 进程的特征 进程通常由程序、数据集合、进程控制块PCB组成。 PCB是一种数据结构&#xff0c;是进程存在的唯一标识。 组织方式说明线性方式把所有PCB组织在一…...

初始提示词(Prompting)

理解LLM架构 在自然语言处理领域&#xff0c;LLM&#xff08;Large Memory Language Model&#xff0c;大型记忆语言模型&#xff09;架构代表了最前沿的技术。它结合了存储和检索外部知识的能力以及大规模语言模型的强大实力。 LLM架构由外部记忆模块、注意力机制和语…...

Ollama+AnythingLLM安装

一、文件准备 ‌ 1. 安装包获取‌ 从联网设备下载&#xff1a; AnythingLLMDesktopInstaller.exe&#xff08;官网离线安装包&#xff09;‌ deepseek-r1-1.5b.gguf&#xff08;1.5B 参数模型文件&#xff09;‌ 2. ‌传输介质‌ 使用 U 盘或移动硬盘拷贝以下文件至离线设…...

docker拉取失败

备份原始配置文件 sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak 清理或修复 daemon.json 文件 sudo nano /etc/docker/daemon.json 删除 文件中的所有内容&#xff0c;确保文件为空。 cv下面这个文件内容 { "registry-mirrors": [ &…...

PHP之Cookie和Session

在你有别的编程语言的基础下&#xff0c;你想学习PHP&#xff0c;可能要了解的一些关于cookie和session的信息。 Cookie 参数信息 setcookie(name,value,expire, path, domain); name : Cookie的名称。 value : Cookie的值。 expire : Cookie的过期时间&#xff0c;可以是一…...

【万字长文】基于大模型的数据合成(增强)及标注

写在前面 由于合成数据目前是一个热门的研究方向&#xff0c;越来越多的研究者开始通过大模型合成数据来丰富训练集&#xff0c;为了能够从一个系统的角度去理解这个方向和目前的研究方法便写了这篇播客&#xff0c;希望能对这个领域感兴趣的同学有帮助&#xff01; 欢迎点赞&…...

CES Asia 2025增设未来办公教育板块,科技变革再掀高潮

作为亚洲消费电子领域一年一度的行业盛会&#xff0c;CES Asia 2025&#xff08;第七届亚洲消费电子技术贸易展&#xff09;即将盛大启幕。今年展会规模再度升级&#xff0c;预计将吸引超过500家全球展商参展&#xff0c;专业观众人数有望突破10万。除了聚焦人工智能、物联网、…...

Python详细安装教程——Python及PyCharm超详细安装教程:新手小白也能轻松搞定!(最新版)

Python作为一门简单易学、功能强大的编程语言&#xff0c;近年来在数据分析、人工智能、Web开发等领域广受欢迎。而PyCharm作为一款专业的Python集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了强大的代码编辑、调试和项目管理功能&#xff0c;是Python开发者的得力…...

游戏引擎学习第137天

演示资产系统中的一个 bug 我们留下了个问题&#xff0c;你现在可以看到&#xff0c;移动时它没有选择正确的资产。我们知道问题的原因&#xff0c;就在之前我就预见到这个问题会出现。问题是我们的标签系统没有处理周期性边界的匹配问题。当处理像角度这种周期性的标签时&…...

RAGflow升级出错,把服务器灌满了

使用自动化更新命令&#xff0c;从16升级到17&#xff0c;结果发现出现了大问题&#xff0c;不断下载&#xff0c;一直无法下载完毕。 df -h 直接把服务器搞满了。哈哈哈哈~。查看一下&#xff1a; sudo du -sh /var/lib/docker确认是docker里面安装的ragflow有问题。所以&am…...

[数字图像处理]直方图规定化

这里分别使用基于像素手动计算、调用工具箱函数两种方法实现直方图规定化 1.基于像素进行直方图规定化 &#xff08;1&#xff09;读取了原始图像和期望图像&#xff0c;并将它们转换为灰度图像 &#xff08;2&#xff09;计算原始图像和期望图像的像素概率分布直方图P(i)和…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...