python

导航

python序列实现逆序的方法,你看过吗?

来源 :中华考试网 2020-12-04

  python中实现序列逆序的方法

  1. range 函数

  2. reversed 函数

  3. 其他方法

  1. range 函数

  一般 for 循环中总会用到 range 函数来进行顺序遍历,同样的,range 也能表示序列的逆序。

  在 range(start, end, step) 中,start 表示序列的起始索引(默认为0),end 表示终止索引,step 表示移动步长(默认为1)。由于 range 函数是“顾头不顾尾” 的形式,因此实际上其遍历的索引终止位置是 end 的前一个索引。

  比如:

  list(range(5)) = [0, 1, 2, 3, 4]

  list(range(1, 5)) = [1, 2, 3, 4]

  list(range(1, 5, 1)) = [1, 2, 3, 4]

  list(range(1, 5, 2)) = [1, 3]

  同理,逆序遍历只需将步长 step 设为负值即可。

  比如:

  list(range(5, 1, -1)) = [5, 4, 3, 2]

  list(range(5, -2, 2)) = [5, 3, 1, -1]

  这样,在 for 循环中既可以实现顺序遍历,也可以进行逆序遍历。

  2. reversed 函数

  在 python3 中,reversed 函数也能够逆转列表。

  其实,在 python2.7 中就存在内置函数 reverse 可以用来翻转列表,不过在 python3 中已经删去该函数。

  相比于 reverse 函数只能反转列表,reversed 函数则可以翻转多种序列,包括tuple、list、string、range等类型。

  由于 reversed 函数实际上是一个类,因此其直接输出的是对应序列值反转后的迭代器,需要由对应类型的方法获取反转后的值。

  比如:

  # 列表反转

  a = [1, 2, 3, 4, 5]

  print(reversed(a)) # 输出:

  print(list(reversed(a))) # 输出:[5, 4, 3, 2, 1]

  # 元组反转

  a = (1, 2, 3, 4, 5)

  print(reversed(a)) # 输出:

  print(tuple(reversed(a))) # 输出:(5, 4, 3, 2, 1)

  # 字符串反转

  a = '12345'

  print(reversed(a)) # 输出:

  print(str(reversed(a))) # 输出:

  print("".join(reversed(a))) # 输出:54321

  注意:

  list、tuple、range 类型均可相互转换,但str类型不同;

  str类型反转序列输出采用"".join(reversed(string)))方法,即将反转序列按顺序添加进新的字符串序列中。

  不过,reversed 函数只能对已有序列做完全反转,若只是想对序列其中一部分进行反转,需要先截取对应序列再反转,也可以用 range 函数遍历所需部分序列。

  3. 其他方法

  除了以上两种方法外,对于字符串序列,还可以用切片反转方法进行反转。

  比如:

  a = 'hello world'

  print("".join(reversed(a))) # 输出:dlrow olleh

  print(a[::-1]) # 输出:dlrow olleh

  print(a[::-2]) # 输出:drwolh

  如今python编程语言市场需求大,薪资待遇上万尽在咫尺!如果你也想学习python技术可以填写下面表单,Python学习资料限时免费领取!

分享到

您可能感兴趣的文章