当您经常在代码中使用Python字符串时,您可能需要以相反的顺序使用它们。Python包含一些方便的工具和技术,可以在这些情况下为您提供帮助。使用它们,您将能够快速有效地构建现有字符串的反向副本。
了解这些工具和技术以了解Python中的这些反向字符串将帮助您提高作为Python开发人员的熟练程度。
在本教程中,您将如何学到:
为了最大程度地利用本教程的使用,您应该知道的基本知识字符串以及循环和递归时。
在某些特定情况下,可能需要以相反的顺序进行python字符串。您可以使用哪些Python工具来帮助?
该字符串在Python中是不可变的,因此不可能将其倒转到位的给定字符串。您需要创建目标字符串的反向副本以满足要求。
python提供了两种直接方法来逆转字符串。由于字符串是一个序列,它们是可索引,可切片且具有疑问的。这些功能使您可以直接以相反顺序生成给定字符串的副本。第二个选项是创建一个选项使用构建-in函数reververion()的迭代器,该函数reversion()以相反的顺序在输入字符串中生成字符。
切片是一项有用的技术,可让您使用称为“偏移量的整数索引”的不同组合来从给定的序列中提取项目。当涉及切片字符串时,这些偏移量定义了slice中第一个字符的索引,该字符的索引,字符的索引这阻止了切片,以及多少个字符定义了多少个字符可以跳过每次迭代。
要切片字符串,您可以使用以下语法:
您的偏移启动,停止和步骤。此表达式提取所有字符从startto stop -1by。
所有偏移都是可选的,它们具有以下沉默值:
在这里,start代表切片中第一个字符停止的索引,同时保存停止切片操作的索引。第三个偏移步骤使您可以决定每次迭代中都会跳过多少个字符。
注意:当达到索引或大于索引时,切片操作已完成。这意味着它永远不会在索引末端包含项目(如果是)。
此步骤偏移使您可以罚款 - 并跳过所需的字符以从字符串中提取:
>>>
在这里,当字母不提供明确的偏移值以获取原始字符串的完整副本时,您首先执行切片。出于此原因,您也可以使用第二个colon(:) slice.ASS步骤等于2,Slice Slice目标字符串中的彼此字符。您可以更好地了解具有不同偏移的切片的工作原理。
为什么与第三个偏移相关的切片与python中的字符串有关?答案在于如何交出负值。如果您提供负数,则切片向后运行,即从右到左。
例如,如果设置为stepequal -1,则可以构建一个切片,该切片以相反的顺序检索所有字符:
>>>
此切片从字符串的右端返回所有字符0(索引相等)到len(letters)-1字符串左端(索引)。当您使用此技术时,您将以相反顺序获得原始字符串的副本不影响原始内容字母。
创建现有字符串反向副本的另一种技术是使用slice()。该构建功能的签名如下:
此函数接受三个参数,该参数与切片计算符号中的偏移量相同,并返回切片对象以指示调用
范围(启动,启动,步骤)。
您可以使用slice()模拟slice [::-1],然后快速反转字符串。continue.continue和slice()在方括号中运行以下调用:
>>>
传递无slice()的前两个参数()告诉您要依靠其内部默认行为的函数,这与标准和值的标准切片相同。需要从右侧序列的左端切片。
相反()第二个可以说是最蓬松的逆转字符串方法()和str.join()。如果将字符串传递到recversion(),则会在相反的顺序中获得一个字符。
>>>
当您以greeting为参数调用Next()时,您将从原始字符串的右端获取每个字符。
要注意反转()的重要一件事是,生成的迭代器直接从原始字符串中生成字符。换句话说,它不会创建新的反向字符串,而是从现有字符串中读取字符。此行为非常有效。记忆消耗,这在某些情况和条件(例如迭代)中可能是基本的胜利。
您可以使用Reversed()直接调用作为参数获得的迭代器。加入 ():
>>>
在此一条线表达式中,您将结果的结果结果传递到参数。join()。因此,您将获得原始输入字符串的反向副本。组合cretversed()和。join()是扭转字符串的好选择。
到目前为止,您已经了解了核心的Python工具和技术的快速扭转字符串。大多数时间,它们将是您的最佳选择。
在本节中,您将学习如何使用显式循环和递归反向字符串。最后一技术在PythonReduce()函数的帮助下使用功能编程方法。
您将使用涉及for循环和连接运算符( +)的第一个反向字符串技术。使用两个字符串作为操作数,并且该计算符号返回连接到原始字符串的新字符串。整个操作称为系列。
注意:使用。join()是一种建议在python中连接字符串的建议方法。
这是一个接受字符串并使用系列将其反转为循环的函数:
>>>
在每次迭代中,循环使用以下字符char,fromText并将其当前内容连接到结果。请注意,结果最初保留一个空字符串(“”)。然后将新的中间字符串重新分配到结果。循环结束,结果将新字符串保存为原始字符串的反向副本。
注意:由于Python字符串是一种不变的数据类型,您应该记住,本节中的示例使用废物技术。它们取决于创建连续中间字符串,只是在下一个迭代中丢弃它们。
如果您愿意使用时,可以执行以下操作以构建给定字符串的反向副本:
>>>
在这里,您首先使用索引输入字符串中最后一个字符的LEN()的计算。周期是从索引到0。在每次迭代中,您使用扩展分配运算符( +=)创建一个中间字符串。字符串的内容将连接到来自相应字符的相应字符。相似,最终结果是通过倒入输入字符串生成的新字符串。
您也可以使用递归反向字符串。记录引用函数调用本身。为了防止无限递归,您应该提供一个基本情况,可以在不再次调用函数的情况下生成结果。第二个组件是递归情况,是递归情况,它递归开始并执行大多数计算。
以下是如何定义递归函数,该函数返回给定字符串的反向副本:
>>>
在此示例中,您首先检查基本情况。如果输入字符串中只有一个字符,则将字符串返回到呼叫者。
最后一个语句,即递归情况,请调用reversed_string()本身。呼叫使用文本[1:]将字符串的切片作为参数输入。此切片包含文本中的所有字符,除了第一个。下一步是将递归调用中包含的第一个字符的单字符串添加到文本[:1]中包含的文本字符串中。
在上面的示例中需要注意的一个重要问题是,如果将长字符串作为参数传递给reversed_string(),那么您将获得一个recursionError:
>>>
您应该在代码中考虑对Python的默认限制是一个重要的问题。但是,如果您确实需要使用递归,那么您仍然可以选择手动设置递归限制。
您可以通过调用来自默认值的getRecursionLimit()来检查当前Python解释器的递归限制,此值通常为1000。您可以使用SetRecursionLimit()从同一模块中使用SYS。使用这些功能,您可以配置Python环境,以便您的递归解决方案可以工作。
如果您喜欢使用功能编程方法,则可以使用redion()fromfunctools逆转字符串。一个累积值。
以下是您可以使用realding()反向字符串:
>>>
在此示例中,lambda函数使用两个字符串并以相反的顺序连接它们。在loop redain()中进行call以应用lambdatotext并构建原始字符串的反向副本。
有时,您可能需要以相反的顺序遍历现有的字符串,通常称为反向迭代。根据您的特定需求,您可以使用以下一个选项进行字符串进行反向迭代:
可以说逆向迭代是这些工具的最常见用例,因此在以下各节中,您将了解如何在迭代环境中使用它们。
相反顺序和Pythonic的迭代字符串最可读的方法是使用Reversed()。不久前,当您与之使用时。join()要创建一个反向字符串,您已经理解了该功能。
但是,主要意图和用例Revereed()是支持Python的迭代对象的相反迭代。字符串作为参数,cretversed()返回一个迭代器,该迭代器以相反的顺序从输入字符串生成字符。
以下是脚趾字符串以相反顺序逆转()的方式:
>>>
此示例中的周期非常可读性。名称reversed()清楚地表达了其意图,并表明该函数对输入数据没有任何副作用。因为反击()返回迭代器,循环也有效,在内存中也有效使用。
执行字符串反向迭代的第二种方法是使用您在a_string [::- 1]中看到的扩展部分语法。现有字符串:
>>>
在此示例中,您可以应用切片的操作员问候来创建其反向副本。然后,您使用新的反向字符串来馈电循环。在这种情况下,您正在使用新的反向字符串进行迭代,因此解决方案的内存效率较低而不是使用()。
如果您试图扭转Python列表,那么您将知道该列表具有方便的方法,称为原始.RERVERSE()反向基础列表。由于字符串在Python中是不可变的,因此它们不提供类似的方法。
但是,您仍然可以使用.redverse()来模仿list.reverse()。你可以这样做:
>>>
ReverSiblestring从UserString继承,它是Collections Module.userString是str -in -in -in数据类型的包装器。创建一个自定义字符串类非常方便,您需要使用其他功能创建自定义字符串。与常规字符串相同的功能。它还添加了一个称为.data的公共属性,并允许您访问包装的字符串对象。
倒车,您创建.reverse()。此方法逆转包装的字符串。数据并将结果重新插入.DATA。从外部,callrverse()工作称为字符串。
以下是反击实践的工作原理:
>>>
当您调用.redverse()on时,该方法就像您在现场更改底部字符串。串相反顺序。
由于用户设备提供与其超类相同的功能str,因此您可以反转()打开框以使用土地执行反向迭代:
>>>
在这里,您将reversed()wittext称为参数,以提供for loop。此呼叫根据预期的工作返回相应的迭代器,并返回相应的迭代器,因为从str中进行了usestring。请注意,呼叫()不会影响原始字符串。
您将以相反顺序对字符串的字符进行排序。当您不按特定顺序处理字符串并需要按反向字母的顺序排序时,可以方便地对它们进行排序。
要解决此问题,您可以使用sorted()。此构建的函数返回一个列表,其中包含所有inter.intable.in the Iteration,sorted()还接受反向关键字参数。如果是true要输入迭代对象以按顺序排序,则可以将此参数设置为:
>>>
当您的satered()使用字符串作为参数并将其设置为反向时,您将获得包含输入字符串字符的上空 - 下down或soulter -dord -order -order -order -order -sorted()返回列表对象,您需要一个将列表转换回字符串的方法。相似,您可以。JOIN()使用它,如前一部分:
>>>
在此代码剪辑中,您致电。join()一个空字符串,它扮演saparators的角色。参数to.join()是呼叫sorted()用vowls作为参数和反向设置为true的结果。
您也可以使用sorted()以分类和反向顺序遍历字符串:
>>>
says()为您提供了sorted(),该()允许您按迭代效果(包括字符串和安排)进行排序。为你。
相反顺序的逆转和处理字符串可能是编程中的常见任务。Python提供了一组工具和技术,以帮助您快速有效地执行字符串逆转。在本教程中,您可以理解这些工具和技术以及如何在中使用它们。弦处理的挑战。
在本教程中,您是如何学到的:
尽管此主题本身可能没有很多令人兴奋的案例,但了解如何逆转字符串的条目 - 级别的位置很有用。Python,这是该语言的重要特征。
本文分享了华为云社区的诚意,作者:Yuchuan。