主页 > 知识库 > python反转(逆序)字符串的6种方法详细

python反转(逆序)字符串的6种方法详细

热门标签:硅谷的囚徒呼叫中心 Win7旗舰版 客户服务 电话运营中心 企业做大做强 百度AI接口 语音系统 呼叫中心市场需求

对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了,今天总结了一下python中对于字符串的逆序输出的几种常用的方法

方法一:直接使用字符串切片功能逆转字符串

>>> def strReverse(strDemo):
	return strDemo[::-1]
>>> print(strReverse('jb51.net'))
ten.15bj

结果:

ten.15bj

方法二:遍历构造列表法

循环遍历字符串, 构造列表,从后往前添加元素, 最后把列表变为字符串

>>> def strReverse(strDemo):
	strList=[]
	for i in range(len(strDemo)-1, -1, -1):
		strList.append(strDemo[i])
	return ''.join(strList)

>>> print(strReverse('jb51.net'))
ten.15bj

结果:

ten.15bj

方法三:使用reverse函数

将字符串转换为列表使用reverse函数

>>> def strReverse(strDemo): 
	strList = list(strDemo) 
	strList.reverse() 
	return ''.join(strList)

>>> print(strReverse('jb51.net'))
ten.15bj

结果:

ten.15bj

方法四:借助collections模块方法extendleft

>>> import collections
>>> def strReverse(strDemo): 
	deque1=collections.deque(strDemo) 
	deque2=collections.deque() 
	for tmpChar in deque1: 
		deque2.extendleft(tmpChar) 
	return ''.join(deque2)

>>> print(strReverse('jb51.net'))
ten.15bj

结果:

ten.15bj

方法五:递归实现

>>> def strReverse(strDemo): 
	if len(strDemo)=1: 
		return strDemo 
	return strDemo[-1]+strReverse(strDemo[:-1])

>>> print(strReverse('jb51.net'))
ten.15bj

结果:

ten.15bj

方法六:借助基本的Swap操作,以中间为基准交换对称位置的字符

>>> def strReverse(strDemo): 
	strList=list(strDemo) 
	if len(strList)==0 or len(strList)==1: 
		return strList 
	i=0 
	length=len(strList) 
	while i  length/2: 
		strList[i], strList[length-i-1]=strList[length-i-1], strList[i] 
		i+=1
	return ''.join(strList)

>>> print(strReverse('jb51.net'))
ten.15bj

结果:

ten.15bj

本文讲解的python反转(逆序)字符串的6种方法详细请到这里,更多关于python反转(逆序)字符串的方法请查看下面的相关链接

您可能感兴趣的文章:
  • Python 实现反转整数的案例(很容易懂的那种)
  • python3整数反转的实现方法
  • python反转列表的三种方式解析
  • python对数组进行反转的方法
  • python算法题 链表反转详解
  • python简单实现整数反转的画解算法

标签:崇左 喀什 山西 济南 安康 长沙 山西 海南

巨人网络通讯声明:本文标题《python反转(逆序)字符串的6种方法详细》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266