数据科学 - 字符文本处理

news2024/12/25 2:20:16

1. 字符串的基本操作

1.1 结构操作

1.1.1 拼接

 • 字符串之间拼接

字符串之间的拼接使用'+'进行字符串的拼接

a = 'World'
b = 'Hello'
print(b + ' ' +a)

• 列表中的字符串拼接

将以分隔符‘,’为例子

str = ['apple','banana']
print(','.join(str));

• 字符串中选择

通过索引进行切片操作

str1 = 'HelloWorld'

# 从索引 1 到索引 4 (不包括 4)
print(str1[1:4])  # 输出: ell

# 从索引 0 开始,每隔一个字符取一次
print(str1[0::2])  # 输出: Hlool

# 反转字符串
print(str1[::-1])  # 输出: dlroWolleH

1.1.2 大小写转换

注意,字符串的大小写转换是一个内置于str中的方法,所以使用str.function()的形式声明

str = 'World'
print(str.upper()) #转换为大写
print(str.lower()) #转换为小写
print(str.capitalize()) #首字母大写

1.1.3 去除空白

通过strip函数将字符串周边的空白部分自定义去除

str2 = ' Hello World '
print(str2.strip())
print(str2.lstrip()) #去除左边的空格,去除右边空格使用rstrip

1.2 字符串的分割与合并

• 分割字符串以列表的形式

a = 'apple,banana'
fruits = a.split(',')

使用','进行分割,最终返回

['apple','banana']

• 合并列表为字符串形式

 将以分隔符‘,’为例子

str = ['apple','banana']
print(','.join(str));

1.3 格式化

常见的格式化有两种

• format形式

根据format()之后的顺序依次填充进入{}

name = "John"
age = 30
info = "My name is {} and I am {} years old".format(name, age)
print(info)  # 输出: My name is John and I am 30 years old

• f{}形式

这种方法更加自定义化,不用考虑填充顺序,将变量置入即可

name = 'Ricardo'
age = 18
print(f"Hello, I'm {name}, my age is {age}")

1.4 字符串检测

startswidth判断末尾位置是否满足条件
endswith判断起始位置是否满足
isalpha判断是否为字符组成
isdigit判断是否由数值组成
str1 = 'HelloWorld'
print(str1.startswith('Hello'))  # 输出: True
print(str1.endswith('World'))  # 输出: True
print(str1.isalpha())  # 输出: True

str2 = '12345'
print(str2.isdigit())  # 输出: True

2. Re中使用正则表达式

re 模块是 Python 中处理正则表达式的标准库,用于字符串的复杂模式匹配、搜索、替换等操作。通过正则表达式,你可以轻松实现复杂的文本处理需求,如验证输入、查找特定模式、替换文本等。

import re

2.1 常用函数

• re.match()

从字符串的起始位置开始匹配。如果匹配成功,返回 Match 对象,字符串形式;否则返回 None

import re

text = "hello world"
match = re.match(r'hello', text)
if match:
    print("Match found:", match.group())  # 输出: Match found: hello

• re.search()

search扫描整个字符串,返回第一个匹配项

import re

text = "hello world"
search = re.search(r'world', text)
if search:
    print("Search found:", search.group())  # 输出: Search found: world

• re.findall()

findall返回所有的匹配项,以列表的形式

import re

text = "The rain in Spain falls mainly in the plain"
matches = re.findall(r'in', text)
print("All matches:", matches)  # 输出: All matches: ['in', 'in', 'in', 'in']

• re.sub()

sub替换文本匹配内容

import re
text = 'The winter is so hot'

matches = re.sub(r'winter','summer',text)
print(matches) #返回替换后的整体文本

• re.split()

与前文所述的split用法相同,将字符串进行分割,返回列表形式

import re

text = "apple, banana, cherry"
split_result = re.split(r', ', text)
print(split_result)  # 输出: ['apple', 'banana', 'cherry']

2.2 Match对象

group()返回匹配的字符串
start()返回匹配的开始位置

end()

返回匹配的结束位置
span()返回匹配的开始与结束为止,元组的形式返回
import re

text = "hello world"
match = re.search(r'world', text)
if match:
    print("Matched text:", match.group())  # 输出: Matched text: world
    print("Start position:", match.start())  # 输出: Start position: 6
    print("End position:", match.end())  # 输出: End position: 11
    print("Span:", match.span())  # 输出: Span: (6, 11)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个 Java 语言简化处理 PDF 的框架,提供了一套简单易用的 API 接口,满足多样化需求又能简化开发流程的处理方案(附教程)

前言 当前市面上处理 PDF 文件的工具众多,但它们往往存在一定的局限性,比如复杂交互、功能单一等问题。尤其对于那些需要频繁生成或编辑 PDF 文档的应用场景来说,找到一个既能满足多样化需求又能简化开发流程的处理方案显得尤为重要。那么&a…

思想和认知,从身边的事情和从小经历就在培养。谁在起跑线!

世界地图就像一张藏宝图,有的地方有宝藏,有的地方物资匮乏。当你拼命努力却一直挖不到宝藏的时候,不妨换个位置挖掘。如果你运气好,很可能就挖到一堆金子直接实现财富自由。运气不好,也能轻松过上小康生活。财富和位置…

新书推荐——《Python贝叶斯深度学习》

在过去的十年中,机器学习领域取得了长足的进步,并因此激发了公众的想象力。但我们必须记住,尽管这些算法令人印象深刻,但它们并非完美无缺。本书旨在通过平实的语言介绍如何在深度学习中利用贝叶斯推理,帮助读者掌握开…

【Java】Java中String、StringBuilder、StringJoiner详解

目录 引言 一、String 1.1 String的定义 1.1.1 直接赋值 1.1.2 new关键字创建 1.2 常用方法 1.3 字符串的不可变性 1.4 字符串内存的存储原理 二、StringBuilder 2.1 常用方法 2.2 动态扩容策略 2.3 使用场景 三、StringJoiner 3.1 构造方法 3.2 常用方法 3.3…

ArcGIS共享数据的最佳方法(不丢可视化、标注等各类显示信息一样带)

今天我们介绍一下ArcGIS数据共享的几个小妙招 我们时常要把数据发给对方,特别是很多新手朋友要将shp发给对方时只是发送了shp后缀的文件,却把shp的必要组成文件dbf、shx等等给落下了。 还有很多朋友给图层做好了符号化标注,但是数据一发给别…

介绍几个LDO低压差线性稳压器(ME6206、RT9013、XC6206)

最近翻了翻开源平台上面的一些设计,收集了一些LDO的电路设计,这边分享记录一下。 ME6206 不同的产品型号对应不同的输出电压,工作电流,封装形式。 典型应用电路图也很简单,就在电压的输入输出端各加一个电容。 输入电…

Miniforge详细安装教程(macOs和Windows)

(注:主要是解决商业应用anaconda收费问题,这是轻量级的代替,个人完全可以使用anaconda和miniconda) Miniforge 是一个轻量级的包管理器,类似于 Anaconda 和 Miniconda。它主要用于安装基于 conda 的 Python 环境,专注于…

【智能算法应用】樽海鞘群算法求解二维路径规划问题

摘要 路径规划是机器人导航和自主无人机领域中的关键问题。本文提出了一种基于智能优化算法——樽海鞘群算法(Salp Swarm Algorithm, SSA)的二维路径规划方法。该算法模拟樽海鞘的链式运动行为,旨在寻找障碍物环境中的最优路径。通过仿真实验…

StopWath,apache commons lang3 包下的一个任务执行时间监视器的使用

StopWath是 apache commons lang3 包下的一个任务执行时间监视器&#xff0c;与我们平时常用的秒表的行为比较类似&#xff0c;我们先看一下其中的一些重要方法&#xff1a; <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependen…

3D 模型GLTF、GLB格式文件介绍使用;FBX格式

一、GLTF、GLB介绍 GLTF&#xff08;GL Transmission Format&#xff09;和 GLB&#xff08;GL Binary&#xff09;是用于在 Web 和各种应用程序中传输和加载 3D 场景和模型的开放标准格式。它们由 Khronos Group 开发&#xff0c;旨在提供一种高效、可扩展且易于使用的 3D 内…

RUST语言的初印象-从一个模拟登陆谈起-slint+reqwest+aes

本文就一个做了三四天的小程序讲第一次学用RUST的感受&#xff0c;内附代码。 了角语言 从一些渠道听说了R&#xff0c;这个字母挺魔性&#xff0c;那个文章说C和R的团体已经上升到了宗教崇拜的高度&#xff0c;然后&#xff0c;我觉得必 有过人之处&#xff0c;大约10年没碰…

C# DotNetty客户端

1. 引入DotNetty包 我用的开发工具是VS2022&#xff0c;不同工具引入可能会有差异 工具——>NuGet包管理器——>管理解决方案的NuGet程序包 搜索DotNetty 2.新建EchoClientHandler.cs类 用于接收服务器返回数据 public class EchoClientHandler : SimpleChannelIn…

vs code自动报错

让vs code自动报错&#xff0c; 点击插件 → 搜索error lens → 点击install&#xff0c; 下载完后&#xff0c;编写的代码有问题就会自动报错了。 5、修改默认缩进字符 点击设置&#xff08;settings&#xff09; → 点击常用设置 → 修改字符缩进。

汽车自研算法部署芯片份额浅思

国内汽车行业如火如荼发展,汽车从业的研发人员也激增,从三电到座舱到智能驾驶和动力底盘一体化发展。 芯片承载着算法落地,国内主流的主机厂(OEM)的EE架构规划都基本使用主流的车规级芯片,如 英飞凌(Infineon):德国半导体制造商,行业当前在预控的SOC的MCU选择TC39X…

ROC、TPR、FPR的含义

1、ROC&#xff08;Receiver Operating Characteristic&#xff09; ROC&#xff08;Receiver Operating Characteristic&#xff09;曲线是一种用于评估分类模型性能的工具。它通过绘制真阳性率&#xff08;True Positive Rate, TPR&#xff09;与假阳性率&#xff08;False…

新书速览|Stable Diffusion-ComfyUI AI绘画工作流解析

《Stable Diffusion-ComfyUI AI绘画工作流解析》 本书内容 《Stable Diffusion-ComfyUI AI绘画工作流解析》从零开始&#xff0c;详尽系统地讲解从本地部署ComfyUI、下载安装自定义节点&#xff0c;到搭建各种工作流程的全过程。同时&#xff0c;辅以3D形象转绘、艺术二维码和证…

智能制造的生产力基础设施

由于全球大多数细分市场的半导体工厂都满负荷运转&#xff0c;因此&#xff0c;生产力如今成为整个行业关注的重要问题也就不足为奇了。工厂经理会仔细监控关键绩效指标 (KPI)&#xff0c;以发现任何生产力下降的迹象&#xff0c;以便快速做出反应&#xff0c;找出并解决这些偏…

UE4中 -skipbuild -nocompile 有什么区别

在项目开发中&#xff0c;我看到了在调用 Engine\\Build\\BatchFiles\\RunUAT.bat 相关的命令行中&#xff0c;有 -skipbuild、 -nocompile 两个很像的参数&#xff0c;于是想探究一下它们的区别与含义。 -skipbuild 参数 到底有没有 -skipbuild 这个参数&#xff1f;根据 http…

1.3 熟悉常用的IP相关命令

1.3熟悉常用的IP相关命令 原理概述 华为设备支持多种配置方式&#xff0c;包括Web界面管理等。但作为一名网络工程师&#xff0c;必须熟悉使用命令行的方式进行设备管理。在工作中&#xff0c;对路由器和交换机最常用的操作命令就是IP相关命令&#xff0c;如配置主机名、IP地…

<Rust>egui学习之部件(十三):如何为文本添加链接Link和超链接HyperLink功能?

前言 本专栏是关于Rust的GUI库egui的部件讲解及应用实例分析&#xff0c;主要讲解egui的源代码、部件属性、如何应用。 环境配置 系统&#xff1a;windows 平台&#xff1a;visual studio code 语言&#xff1a;rust 库&#xff1a;egui、eframe 概述 本文是本专栏的第十三篇…