python字符串你是在用其他语言编程之后才开始接触Python的吗?如果是这样,那么在查找在其他语言中可以找到的子字符串方法时,您可能遇到了瓶颈。惊喜!没有Python子字符串方法。不要担心,Python提供了一些强大的处理子字符串的方法。我们将向你展示它们是如何工作的。对于Python语言中的其他差异,Pythonic Python是一个已经熟悉另一种编程语言的程序员的好课程

快速回顾一下

首先,快速介绍并回顾Python中的字符串。有关更彻底的审查和介绍Python,请为初学者尝试此课程阅读本文的字符串的教程。在Python中,字符串是一系列字母数字字符。写它们的最常见方法是单引号或双引号。

你='Udemy课程很棒!'

字符串的索引是从左开始的偏移量,第一个字符从0开始。最后一个索引总是比字符串的长度小1。我们的示例字符串的长度为24,因此索引值从0到23。对于本教程,我们将演示类似于在IDLE shell中输入的语法。

>>>你='Udemy课程很棒!'#you type at the >>> prompt >>> print (u[0]) U # this is the response from Python >>> print (u[23]) !

如您所见,索引是在方括号中指定的,字符串的偏移量从0到23。Python允许指定负偏移量的独特技巧,这意味着从右开始计数。Offset -1是字符串的最后一个字符。

>>>你='Udemy课程很棒!'>>> print (u[-1]) !

Python子:切片

在Python中,以一种称为切片的索引形式访问子字符串。由结肠分开提供两个索引号。如果我们想要子字符串'课程',我们可以使用Slicing:

>>>你='Udemy课程很棒!'>>>打印(U [6:13])课程

注意,我们按预期指定了需要的第一个字符的偏移量,但我们指定了比需要的最后一个字符多一个偏移量。切片u[a:b]返回索引a到索引(b-1)的子字符串。所以,如果我们想要获得从位置6到末尾的所有字符串,我们可以指定:

>>>你='Udemy课程很棒!'>>> print (u[6:24]) courses are great!

我们必须使用24,即使在这种情况下最后一个字符的索引是23。

实际上,您可能会使用默认表示法。切片U [A:B]具有以下默认变化:

>>>你='Udemy课程很棒!'>>>打印(U [:5])UDEMY#忘记第一个索引将默认为字符串的开头>>>打印(U [6:])课程很棒!#leauming熄灭第二个索引将默认为字符串的末尾>>>打印(U [:])Udemy课程很棒!#删除两个索引为您提供整个字符串

你还可以把第三个指标放入一个切片中,u[a:b:c]这是一步,或大步。它将给出一个子字符串,从a开始,包含每个cth字符:

>>>你='Udemy课程很棒!'>>>打印(U [:: 3])UMCRSRGA

在本例中,省略了a和b,因此它使用整个字符串并每3个字符返回一次。

从每个线具有相同结构的文件读取数据时,切片可能非常强大。假设我们有一个文本文件,每一行都如下所示:

xxxxddddxxxxxxddxx.

x是任意字符,我们只想要任何字符是d's的位置。我们可以使用Slicing来提取这些子串:

>>> DString ='xxxxddddxxxxxxddxx'>>> data1 = dstring [4:8] >>> data2 = dstring [14:16] >>>打印(data1)dddd >>>打印(data2)dd

如果这些字符是数字,并且你需要数字数据,只需使用float()或int()方法:

>>> dstring = 'xxxx1234xxxxxx56xx' >>> data1 = float(dstring[4:8]) #将data1创建为浮点数>>> data2 = int(dstring[14:16]) #将data2创建为整数数

最后,值得指出,这些切片操作中的任何一个都没有改变原始字符串的值。

当您知道字符串的确切布局时,这些示例将起作用。如果您想要的数据可能位于字符串中的任何位置,该怎么办呢?Python的find()方法将在这里工作。使用find(),您可以指定要查找的子字符串。Python将返回子字符串开始处的索引。在第一个例子中,我们可以找到子字符串' great '的开头:

>>>你='Udemy课程很棒!'>>> u.find('great') 18

好的,所以现在我们知道子字符串'伟大'的开始于索引18.现在我们可以用切片获得子字符串。我们将查找返回的索引分配给变量。我们可以在切片中使用变量来计算索引。在这种情况下,我们知道我们想要的子字符串是5个字符,所以(i + 5)将我们带到我们想要的结束之外的一个地方。请记住,切片中的第二个索引必须是一个高于我们想要结束的地方。

>>>你='Udemy课程很棒!'>>> i = u.find('great') # i now contains the value 18 >>> sub1 = u[i:i+5] >>> print(sub1) great

如果我们不知道我们想要的子字符串是否在我们的字符串中是怎么办?这里有2个选择。首先,如果找不到子字符串,则查找()返回-1。在Python脚本中,我们可以先检查此值,只有在未返回-1时才会继续执行以下操作:

你='Udemy课程很棒!'我= U.Find('很棒')如果i!= -1:#this部分执行如果找到子字符串= U [i:i + 5]打印(sub1)else:#this将执行如果子字符串是找不到打印('未找到'基字符串')

第二种选择是使用in操作符。这将返回true或false值。

你='Udemy课程很棒!'如果在u#中的“很棒”.Exthextex的表达式被评估为true或false #this部分执行如果找到子字符串:表达式为true i = u.find('great')else:#this将执行如果子字符串不是找到:表达式是假打印(“未找到的子字符串”)

有关if语句的更多信息,您可以查看这个培训课程

这将使您开始学习Python子字符串。尝试这个终极课程来掌握更多技能

Python顶级课程

Python 3: Deep Dive (Part 3 - Hash Maps)
弗雷德巴普蒂斯特
4.8 (686)
Python 3: Deep Dive (Part 4 - OOP)
弗雷德巴普蒂斯特
4.8 (1,133)
为初学者提供的Python完整大师类
Mihai Catalin Teodosiu, EpicPython学院
4.5 (2344)
畅销书
Python中的设计模式
Dmitri Nesteruk.
4.4 (1285)
算法交易A-Z配有Python,机器学习和AWS
Alexander Hagmann.
4.6 (464)
畅销书
数据科学:Python中的深度学习和神经网络
懒惰的程序员公司
4.6 (7,296)
人工智能:Python的强化学习
懒惰的程序员团队,Lazy Programmer Inc.
4.6 (8530)
畅销书
基于Python深度学习的自然语言处理
懒惰的程序员团队,Lazy Programmer Inc.
4.6 (6,434)
高级人工智能:Python深度强化学习
懒惰的程序员团队,Lazy Programmer Inc.
4.6 (3846)
收视率最高

更Python的课程

蟒蛇学生也会学习

赋予你的团队。引领行业。

使用Udemy for Business订阅在线课程库和数字学习工具。

请求演示