python

导航

如何使用Python实现字符串反转?

来源 :中华考试网 2020-09-30

  

  在Python中如何做到字符串反转,有几种方法呢?

  样例:如 a='123456789' 反转成 a='987654321'

  第一种方法:使用字符串切片

  >>> a='123456789'

  >>> a = a[::-1]

  '987654321'

  第二种方法:使用reversed() 可读行好,但速度较慢

  >>> ''.join(reversed('123456789'))

  '987654321'

  # 封装使用

  reversed_string(a_string):

  return a_string[::-1]

  >>> reversed_string('123456789')

  '123456789'

  注意:

  python的str对象中没有内置的反转函数

  python字符串相关基础知识:

  python中,字符换是不可变,更改字符串不会修改字符串,而是创建一个新的字符串。

  字符串是可切片,切片字符串会以给定的增量从字符串中的一个点(向后或向前)向另一个点提供一个新字符串。它们在下标中采用切片表示法或切片对象:

  # 下标通过在大括号中包含冒号来创建切片:

  string[start:stop:step]

  # 要在大括号外创建切片,您需要创建切片对

  slice_obj = slice(start, stop, step)

  string[slice_obj]

  第三种方法:循环从字符串提取数据,然后进行字符串拼接(慢)****

  def reverse_a_string_slowly(a_string):

  new_string = ''

  index = len(a_string)

  while index:

  index -= 1 # index = index - 1

  new_string += a_string[index] # new_string = new_string + character

  return new_string

  第四种方法:循环从字符串提取数据,写入到一个空列表中,然后使用join进行字符串拼接**(慢)******

  def reverse_a_string_more_slowly(a_string):

  new_strings = []

  index = len(a_string)

  while index:

  index -= 1

  new_strings.append(a_string[index])

  return ''.join(new_strings)

  第五种方法:使用字符串拼接(慢)

  def string_reverse(a_string):

  n = len(a_string)

  x=""

  for i in range(n-1,-1,-1):

  x += test[i]

  return x

  第六种方法:使用reduce

  reduce(lambda x,y : y+x, a_string)

  第七种方法:使用递归(慢)****

  def rev_string(s):

  if len(s) == 1:

  return s

  return s[-1] + rev_string(s[:-1])

  第八种方法:使用list() 和reverser()配合

  a_string='123456789'

  def rev_string(a_string):

  l=list(a)

  l.reverse()

  return ''.join(l)

  第九种方法:使用栈

  def rev_string(a_string):

  l = list(a_string) #模拟全部入栈

  new_string = ""

  while len(l)>0:

  new_string += l.pop() #模拟出栈

  return new_string

分享到

相关资讯