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

python中字符串的各类方法

大小写转换方法

upper()

用于将字符串中的小写字母转为大写字母。

'abcd'.upper()  # 'ABCD'
'aBcD'.upper()  # 'ABCD'

lower()

用于将字符串中的大写字母转为小写字母。

'ABCD'.lower()  # 'abcd'
'aBcD'.lower()  # 'abcd'

capitalize()

用于将字符串的第一个字母变成大写,其他字母变小写。首字符如果是非字母则不变,其他字母变小写。

'ABCD'.capitalize()  # 'Abcd'
'aBcD'.capitalize()  # 'Abcd'
'1abcd'.capitalize()  # '1abcd'
'1aBcD'.capitalize()  # '1abcd'

title()

用于返回“标题化”的字符串——即所有单词的首字母转为大写,其余字母均为小写。

注意:非字母后的第一个字母将转为大写字母。

'this is an example string'.title()   # This Is An Example String
'5g is coming'.title()  # 5G Is Coming

swapcase()

用于对字符串的大小写字母进行互相转换。

'abcd'.swapcase()  # 'ABCD'
'aBcD'.swapcase()  # 'AbCd'

我们来总结一下:

分割、组合与移除方法

split()_分割

用于通过指定分隔符对字符串进行分割。split() 方法有两个可选参数,第一个参数为分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。第二个参数为最大分割次数,默认为 -1,即不限次数。

'小 贝 编 程'.split()  # ['小', '贝', '编', '程']
'小 贝 编 程'.split(' ')  # ['小', '贝', '编', '程']
'小-贝-编-程'.split('-')  # ['小', '贝', '编', '程']
'小贝编程'.split('贝编')  # ['小', '程']
'小 贝 编 程'.split(' ', 1)  # ['小', '贝 编 程']

join()_组合

用于将序列中的元素以指定的字符连接生成一个新的字符串。join() 方法接收一个序列(列表、元组、字符串等)作为参数,. 前面的字符串用于连接符。

# 列表
''.join(['小', '贝', '编', '程'])  # 小贝编程
'-'.join(['小', '贝', '编', '程'])  # 小-贝-编-程# 元组
'-'.join(('小', '贝', '编', '程'))  # 小-贝-编-程# 字符串
'-'.join('小贝编程')  # 小-贝-编-程

strip()_移除

用于移除字符串开头和结尾指定的字符(默认为空字符)或字符序列。当传入一个字符串时,会将传入字符串中每个字符依次移除。

' 小贝编程  '.strip()  # '小贝编程'
'~~小贝编程~~'.strip('~')  # '小贝编程'
'~~小贝~~编程~~'.strip('~')  # '小贝~~编程'
'_~_小贝编程_~~'.strip('~_')  # '小贝编程'

我们来总结一下:

编程练习

请你使用 split()join() 和 strip() 方法将 $带-你-打-开-编-程-世-界-的-大-门$ 变成 带~你~打~开~编~程~世~界~的~大~门

str = '$带-你-打-开-编-程-世-界-的-大-门$'
str = str.strip('$')
str = str.split('-')
str = '~'.join(str)
print(str)# 简化为
# 先分割、再组合、再转换
# str = '~'.join(str.split('-')).strip('$')
# print(str)

定位与替换方法

count()

用于统计字符串中某个字符串出现的次数。第一个参数为要统计次数的字符串,后两个可选参数为在字符串搜索的开始与结束索引。

'aabbcccd'.count('a')  # 2
'aabbcccd'.count('ab')  # 1
'aabbcccd'.count('e')  # 0'aabbcccd'.count('a', 2, 6)  # 0
# 等同于 'bbcc'.count('a')'aabbcccd'.count('c', 2, 6)  # 2
# 等同于 'bbcc'.count('c')

find()

用于检测字符串中是否包含子字符串,如果包含子字符串返回第一次出现的索引值,否则返回 -1。第一个参数为要查找的子字符串,后两个可选参数为在字符串搜索的开始与结束索引。

'abc'.find('b')  # 1
'abcabc'.find('b')  # 1
'abcabc'.find('d')  # -1
'abcbcdabc'.find('bcd')  # 3
'abcabc'.find('b', 1, 2)  # 1
'abcabc'.find('b', 2, 3)  # -1

replace()

用于将字符串中的指定字符串替换成别的字符串。第一个参数为被替换字符串,第二个参数为替换字符串,第三个可选参数为替换的最多次数,默认为无限次。

'abcd'.replace('b', 'e')  # 'aecd'
'abbbcbd'.replace('b', 'e')  # 'aeeeced'
'abbbcbd'.replace('bb', 'e')  # 'aebcbd'
'abbbcbd'.replace('b', 'e', 2)  # 'aeebcbd'

编程练习

请按要求对字符串进行相应的操作。

str = 'feel the change'# 输出 str 中 e 的个数
print(str)# 输出 str 中 change 的索引值
print(str)# 将 str 中的 change 替换为 CHANGE
print(str)

转换后为:

str = 'feel the change'# 输出 str 中 e 的个数
print(str.count('e'))# 输出 str 中 change 的索引值
print(str.find('change'))# 将 str 中的 change 替换为 CHANGE
print(str.replace('change','CHANGE'))

格式化输出方法

除了之前说的使用 % 运算符进行字符串格式化输出,我们还可以使用字符串的 format() 方法达到同样的效果。

'我叫{},今年 {} 岁,来自{}'.format('小贝', 18, '南京')
# 我叫小贝,今年 18 岁,来自南京

从上面的例子可以看到,format() 方法使用 {} 作为占位符,然后按照参数顺序替换对应的占位符。

我们还可以给占位符编号:

'我叫{0},今年 {1} 岁,来自{2}'.format('小贝', 18, '南京')
# 我叫小贝,今年 18 岁,来自南京# 调整编号顺序
'我叫{2},今年 {1} 岁,来自{0}'.format('南京', 18, '小贝')
# 我叫小贝,今年 18 岁,来自南京# 重复编号
'我叫{0},{0}今年 {1} 岁,来自{2}'.format('小贝', 18, '南京')
# 我叫小贝,小贝今年 18 岁,来自南京

我们还可以给占位符命名:

'我叫{name},今年 {age} 岁,来自{city}'.format(name = '小贝', age = 18, city = '南京')
# 我叫小贝,今年 18 岁,来自南京# 命名后参数顺序不再重要
'我叫{name},今年 {age} 岁,来自{city}'.format(age = 18, city = '南京', name = '小贝')
# 我叫小贝,今年 18 岁,来自南京

请你用字符串的 format() 方法改写之前天气播报的代码。

weathers = [('南京', 36),('成都', 30),('昆明', 26)
]for w in weathers:print('今天%s的最高气温是%d度' % (w[0], w[1]))

改写后的结果为:

weathers = [('南京', 36),('成都', 30),('昆明', 26)
]for w in weathers:print('今天{}的最高气温是{}度'.format(w[0],w[1]))# 输出为:
# 今天南京的最高气温是36度
# 今天成都的最高气温是30度
# 今天昆明的最高气温是26度

相关文章:

python中字符串的各类方法

大小写转换方法 upper() 用于将字符串中的小写字母转为大写字母。 abcd.upper() # ABCD aBcD.upper() # ABCD lower() 用于将字符串中的大写字母转为小写字母。 ABCD.lower() # abcd aBcD.lower() # abcd capitalize() 用于将字符串的第一个字母变成大写&#xff0…...

DataGrip 数据库连接客户端

I DataGrip 安装 1.1安装 打开dmg镜像,将“DataGrip.app”拖入应用程序中; 1.2 Act 打开应用程序,点击试用模式启动软件,然后将“jetbrains-agent-latest”拖到任意位置,然后拖入,弹出对话框,点击“Rest…...

JS片段:生成 UUID

Hi,这里是松桑,每天学习一个 JS 片段,涨涨🧀!今天带来的是如何生成 UUID,UUID作为全局唯一标识,使用常见广泛,包括分布式系统、数据库主键、会话标识、消息队列、日志追踪等等。 什么…...

小学数学出题器-Word插件-大珩助手

Word大珩助手是一款功能丰富的Office Word插件,旨在提高用户在处理文档时的效率。它具有多种实用的功能,能够帮助用户轻松修改、优化和管理Word文件,从而打造出专业而精美的文档。 【新功能】小学数学出题器 1、实现了难度设定;…...

短剧平台源码:打造个性化娱乐体验的核心功能

在数字化媒体的浪潮中,短剧平台源码扮演着至关重要的角色,它不仅是构建短剧平台的技术基础,更是提供个性化娱乐体验的关键。本文将深入探讨短剧平台源码的核心功能,包括推荐短剧、本周热门/热播、个性化推荐、追剧功能、观看历史、…...

【MySQL】MySQL 图形化界面 - 使用说明(MySQL Workbench)

一、安装软件 Navicat,SQLyog 这些软件都不错,不过都需要收费,当然也有破解版。下面用 MySQL Workbench,它是官方提供的工具。 二、使用操作 这个软件本质是一个客户端,现在要让数据库能够远程登录。不过一般不会远程…...

Shell 编程之免交互

一、Here Document 语法格式&#xff1a; 命令 << 标记 ...... ...... 标记 1.用wc -l的命令统计输入的文字的行数 [rootlocalhost ~]# wc -l <<EOF > aaa > bbb > ccc > EOF 3 备注&#xff1a; 显示行数。 2.整体赋值给变量&#xff0c;通过ech…...

github有趣项目:Verilog在线仿真( DigitalJS+edaplayground)

DigitalJS https://github.com/tilk/digitaljs这个项目是一个用Javascript实现的数字电路模拟器。 它旨在模拟由硬件设计工具合成的电路 像 Yosys&#xff08;这里是 Github 存储库&#xff09;&#xff0c;它有一个配套项目 yosys2digitaljs&#xff0c;它可以转换 Yosys 将文…...

性能测试学习-基本使用-元件组件介绍(二)

jmeter优点是&#xff1a;开源免费&#xff0c;小巧&#xff0c;丰富的学习资料和扩展组件 缺点是&#xff1a;1.不支持IP欺骗&#xff0c;分析和报表能力相对于LR欠缺精确度&#xff08;以分钟为单位&#xff09; 工具用户量分析报表IP欺骗费用体积扩展性Loadrunner多(万)精…...

基于大模型的智慧零售教育科研平台——技术方案

一、概述 1.1背景 随着数字经济的快速发展和全社会数字化水平的升级&#xff0c;人工智能的积极作用越来越凸显&#xff0c;人工智能与各个行业的深度融合已成为促进传统产业转型升级的重要方式之一。ChatGPT的出现掀起了又一波人工智能发展热潮&#xff0c;人工智能行业发展势…...

C# using的几个用途

using 关键字有三个主要用途&#xff1a; 1.using 语句定义一个范围&#xff0c;在此范围的末尾将释放对象&#xff1a; string filePath "example.txt"; string textToWrite "Hello, this is a test message!"; // Use the using statement to ensure …...

MyBatis3.4全集笔记

MyBatis 1. MyBatis 简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code&#xff0c;并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合&#xff0c;是一个基于Ja…...

IDEA一键启动多个微服务

我们在做微服务项目开发的时候&#xff0c;每次刚打开IDEA&#xff0c;就需要把各个服务一个个依次启动&#xff0c;特别是服务比较多时&#xff0c;逐个点击不仅麻烦还费时。下面来说一下如何一键启动多个微服务。 操作步骤 点击Edit Configurations 2.点击“”&#xff0c;…...

【Python3】random.choices 权重随机选取 详解

random.choices是Python 3中random模块中的一个函数&#xff0c;用于从指定的序列中以指定的权重随机选择元素。下面我将对该函数进行详细介绍&#xff0c;并提供一些示例代码和注意事项。 函数签名&#xff1a; random.choices(population, weightsNone, *, cum_weightsNone…...

【面试题-015】Redis的线程模型是什么 为什么速度快

redis面试题 Redis的线程模型是什么 为什么速度快&#xff1f; Redis是一个开源的、高性能的键值对&#xff08;key-value&#xff09;数据库。它之所以速度快&#xff0c;主要得益于以下几个方面的设计&#xff1a; 单线程模型&#xff1a; Redis的操作是单线程的&#xff…...

EasyV开发人员的使用说明书

在可视化大屏项目时&#xff0c;开发人员通常需要承担以下任务&#xff1a; 技术实现&#xff1a;根据设计师提供的设计稿&#xff0c;利用前端技术&#xff08;如HTML、CSS、JavaScript等&#xff09;和后端技术&#xff08;根据具体项目需求&#xff0c;可能是Java、Python、…...

构造列表初始化和构造初始化区别

构造列表初始化和构造初始化在C等编程语言中&#xff0c;是两种不同的初始化类实例成员的方式。以下是它们之间的主要区别&#xff1a; 构造列表初始化&#xff08;初始化列表&#xff09; 定义&#xff1a;初始化列表以一个冒号开始&#xff0c;接着是一个以逗号分隔的数据成…...

Message passing mechanism (消息传递机制)

objc_msgSend 是 Objective-C 运行时系统中的一个核心函数&#xff0c;用于实现消息传递机制。在 Objective-C 中&#xff0c;方法调用实际上是消息传递的过程&#xff0c;当你在代码中调用一个方法时&#xff0c;编译器会将其转换为 objc_msgSend 函数的调用。 objc_msgSend …...

详解 Spark SQL 代码开发之数据读取和保存

一、通用操作 /** 基本语法&#xff1a;1.读取&#xff1a;SparkSession.read[.format("format")[.option("...")]].load("path")2.保存&#xff1a;DataFrame.write[.format("format")[.option("...")]][.mode("Save…...

Pulsar 社区周报 | No.2024-05-30 | BIGO 百页小册《Apache Pulsar 调优指南》

“ 各位热爱 Pulsar 的小伙伴们&#xff0c;Pulsar 社区周报更新啦&#xff01;这里将记录 Pulsar 社区每周的重要更新&#xff0c;每周发布。 ” BIGO 百页小册《Apache Pulsar 调优指南》 Hi&#xff0c;Apache Pulsar 社区的小伙伴们&#xff0c;社区 2024 上半年度的有奖问…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...