Python容器 之 字符串--字符串的常用操作方法

1.字符串查找方法 find()

说明:被查找字符是否存在于当前字符串中。

格式:字符串.find(被查找字符)

结果:如果存在则返回第一次出现 被查找字符位置的下标

           如果不存在则返回 -1

需求:
1. 现有字符串数据: '我是中国人'
2. 请设计程序, 实现判断"中国人"和"外国人"是否存在于数据中
3. 要求如果数据存在, 则输出数据所在位置

# 1. 现有字符串数据: '我是中国人'
# 2. 请设计程序, 实现判断"中国人"和"外国人"是否存在于数据中
# 3. 要求如果数据存在, 则输出数据所在位置
my_str = "我是中国人"
# sub_str = "中国人"
sub_str = "外国人"
result = my_str.find(sub_str)
if result == -1:
    print(f'{sub_str}不存在')
else:
    print(f'{sub_str}存在,下标的位置为{result}')

       


 2.字符串的替换 replace()

说明:将字符串中的 old 字符串 替换为 new 字符串

格式:字符串.replace(old, new, count)

                - old字符串,被替换的字符串

                - new 字符串,要替换为的字符串

                - count 一般不写,表示全部替换;可以指定替换的次数

结果:会返回一个替换后完整的字符串

注意: 字符串属于不可变数据类型, 所以修改并不会影响原来的内容,原字符串不会改变的

my_str = 'good good study'

# 需求1:将 good 变为 GOOD
my_str1 = my_str.replace('good', 'GOOD')
print('my_str :', my_str)
print('my_str1:', my_str1)

# 需求2:将第一个 good 替换为 Good
my_str2 = my_str.replace('good', 'Good', 1)
print('my_str2:', my_str2)

# 需求;将第二个 good 替换为 Good
# 方法:先整体替换为 Good, 再将替换后的 第一个Good 替换为 good
my_str3 = my_str.replace('good', 'Good').replace('Good', 'good', 1)
print('my_str3:', my_str3)


3.字符串拆分 split()  

说明:将字符串按照指定的字符串 sep 进行分隔

格式:字符串.split(sep)

             - sep , 按照 sep 分隔, 可以不写, 默认按照空白字符(空格 \t \n)分隔

结果:返回列表,列表中的每个数据就是分隔后的字符串

str1 = 'hello Python\tand itcast and\nitheima'

# 1. 默认 按照空白字符分隔
list1 = str1.split()
print(list1)  # ['hello', 'Python', 'and', 'itcast', 'and', 'itheima']

# 2. 按照 空格分隔
list2 = str1.split(' ')
print(list2)  # ['hello', 'Python\tand', 'itcast', 'and\nitheima']

# 3. 按照 and 分隔
list3 = str1.split('and')
print(list3)  # ['hello Python\t', ' itcast ', '\nitheima']


4.字符串的连接 join()

作用:字符串插入到列表相邻的两个数据之间,组成新的字符串

格式:字符串.join(容器)     # 容器一般是列表 ,

注意:列表中的数据 必须都是字符串才可以

list1 = ['hello', 'Python', 'and', 'itcast', 'and', 'itheima']

# 将 列表中数据使用 空格 组成新的字符串
str1 = ' '.join(list1)
print(str1)  # hello Python and itcast and itheima

# 使用 逗号 连接
str2 = ','.join(list1)
print(str2)  # hello,Python,and,itcast,and,itheima

# 使用 _*_ 连接
str3 = '_*_'.join(list1)
print(str3)  # hello_*_Python_*_and_*_itcast_*_and_*_itheima


扩展:

\t:代表一个 水平制表符,通常显示为四个空格的宽度,这相当于在文档中使用Tab键

\n:表示换行,相当于按一个 回车键

\n\t:表示换行的同时空4个字符


未完待续。。。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 作业题1 (猜数字)

题目 你要根据线索猜出一个三位数。游戏会根据你的猜测给出以下提示之一:如果你猜对一位数字但数字位置不对,则会提示“Pico”;如果你同时猜对了一位数字及其位置,则会提示“Fermi”;如果你猜测的数字及其位置都不对&…

网络爬虫基础知识

文章目录 网络爬虫基础知识爬虫的定义爬虫的工作流程常用技术和工具爬虫的应用1. 抓取天气信息2. 抓取新闻标题3. 抓取股票价格4. 抓取商品价格5. 抓取博客文章标题 网络爬虫基础知识 爬虫的定义 网络爬虫(Web Crawler 或 Spider)是一种自动化程序&…

算法训练营day24--93.复原IP地址 +78.子集 +90.子集II

一、93.复原IP地址 题目链接:https://leetcode.cn/problems/restore-ip-addresses/ 文章讲解:https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80.html 视频讲解:https://www.bilibili.com/video/BV1fA4y1o715 1.1 初…

MyBatis入门案例

实施前的准备工作: 1.准备数据库表2.创建一个新的springboot工程,选择引入对应的起步依赖(mybatis、mysql驱动、lombok)3.在application.properties文件中引入数据库连接信息4.创建对应的实体类Emp(实体类属性采用驼峰…

终身免费的Navicat数据库,不需要破解,官方支持

终身免费的Navicat数据库,不需要破解,官方支持 卸载了Navicat,很不爽上干货,Navicat免费版下载地址 卸载了Navicat,很不爽 公司不让用那些破解的数据库软件,之前一直使用Navicat。换了几款其他的数据库试了…

WebStorm 2024 for Mac JavaScript前端开发工具

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件(适合自己的M芯片版或Intel芯片版),将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功3、打开访达,点击【文…

web权限到系统权限 内网学习第一天 权限提升 使用手工还是cs???msf可以不??

现在开始学习内网的相关的知识了,我们在拿下web权限过后,我们要看自己拿下的是什么权限,可能是普通的用户权限,这个连添加用户都不可以,这个时候我们就要进行权限提升操作了。 权限提升这点与我们后门进行内网渗透是乘…

代码查重软件-自力更生

为了减轻工作量,自研了简单实用的代码查重工具,可以对若干文件之间进行查重。通过调试,相似度大于80%的没有一个是冤枉的。好用。去掉雷同的,其他的代码再慢慢看。

pads layout 脚本导出不能运行excle解决办法

在一台新的电脑上安装好PADS,打开PCB文件导出坐标文件时: 出现“ActiveX Automation: server could not be found.”的问题,导致无法成功导出文件,错误提示截图如下: 导致上述问题的原因是在我们配置导出带坐标的脚本时,默认使用的是微软…

服务器连接不上

记录今天2024/07/02的问题: 我今天真的是非常无语,今天在连服务器的时候,突然发现连不上了。 后来才意识到,原来是我笔记本先是开了全局代理,然后再用easy connected连接。当时还跳出了一个窗口如下,我当时…

2024 MWC上海:创新力量驱动未来先行,移远智慧点亮数字蓝海

6月26日,2024年世界移动通信大会(MWC上海)如期举行,今年的展会以“未来先行”为主题,涵盖“超越 5G、数智制造和人工智能经济”三大技术主题。移远通信作为全球物联网行业的引领者之一,今年不仅在展示内容上…

性能调优 性能监控

1.影响性能考虑点包括: 数据库、应用程序、中间件(tomcat、nginx)、网络和操作系统等方面。 首先考虑自己的应用属于 CPU密集型 还是 IO密集型 cpu密集型 计算,排序,分组查询,各种算法 IO密集型 网络传输,磁盘读…

将数据切分成N份,采用NCCL异步通信,让all_gather+matmul尽量Overlap

将数据切分成N份,采用NCCL异步通信,让all_gathermatmul尽量Overlap 一.测试数据二.测试环境三.普通实现四.分块实现 本文演示了如何将数据切分成N份,采用NCCL异步通信,让all_gathermatmul尽量Overlap 一.测试数据 1.测试规模:8192*8192 world_size22.单算子:all_gather:0.035…

JDBC链接kerberos认证的impala数据库报错问题解决

先上代码 public static Connection connectToImpala() {try {log.info("ketTabPath:" ketTabPath);log.info("krb5Path:" krb5Path);System.setProperty("java.security.krb5.conf", krb5Path);System.setProperty("sun.security.krb5.…

冒泡排序、选择排序、菱形

冒泡排序、选择排序、菱形 文章目录 一、冒泡排序二、选择排序三、菱形 一、冒泡排序 思路: 外层(第一层)循环控制循环次数,和业务无关 内层(第二层)循环用于比较相邻的2个值的大小,根据小到大…

用MySQL+node+vue做一个学生信息管理系统(五):学生信息增删改的实现

先实现增加信息: post参数的获取:express中接受post请求参数需要借助第三方包 body-parser 下载npm install body-parser //引入body-parser模块 const bodyParser require(body-parser); //拦截所有请求,配置body-parser模块 //extended:false 方法…

TransMIL:基于Transformer的多实例学习

MIL是弱监督分类问题的有力工具。然而,目前的MIL方法通常基于iid假设,忽略了不同实例之间的相关性。为了解决这个问题,作者提出了一个新的框架,称为相关性MIL,并提供了收敛性的证明。基于此框架,还设计了一…

昇思MindSpore学习总结六——函数式自动微分

神经网络的训练主要使用反向传播算法,模型预测值(logits)与正确标签(label)送入损失函数(loss function)获得loss,然后进行反向传播计算,求得梯度(gradients&…

怎么使用MarkDown画矩阵

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 今天写文章需要用到矩阵,记录一下 画矩阵需要用到特殊的语法 (1)画普通矩阵,不带括号的 $$be…

SHA1算法

什么是SHA1算法(Secure Hash Algorithm) SHA1算法也是一种哈希算法,也称单向散列算法,不可逆,适用于数字签名标准。与MD5大同小异。 算法流程 (1)明文处理,对明文进行填充&#x…