python中序列的逆序方式

作者:z語默 时间:2023-12-12 19:49:07 

序列的逆序方式

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))  # 输出:<list_reverseiterator object at 0x00000233F1C96588>
print(list(reversed(a)))  # 输出:[5, 4, 3, 2, 1]
# 元组反转
a = (1, 2, 3, 4, 5)
print(reversed(a))  # 输出:<reversed object at 0x000001FE9B3A6588>
print(tuple(reversed(a)))  # 输出:(5, 4, 3, 2, 1)
# 字符串反转
a = '12345'
print(reversed(a))  # 输出:<reversed object at 0x000001FAD17E2438>
print(str(reversed(a)))  # 输出:<reversed object at 0x000001FAD17E2438>
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

一个字符串的逆序函数

ef nixv(s):
   sum = " "                          #定义空字符串
   for i in reversed(range(len(s))): #i逆序遍历
       sum = sum + s[i]              #使单独的字符串组合成整体
   return sum                        #返回字符串
s = input("请输入一个字符串:")
print(nixv(s))

# 方法二
s='wqrwqr123'
print(s[::-1])# 切片

# 方法三
from functools import reduce
s='123456'
result =reduce(lamada x,y:y+x,s)
print(result)

# 方法四
def fan(str1):
   len1=len(str1)
   for i in range(len1):
       print(str1[len1-1-i],end='')
fan('asdfg')

来源:https://blog.csdn.net/qq_24285815/article/details/106648824

标签:python,序列,逆序
0
投稿

猜你喜欢

  • 如何使用Python异步之上下文管理器

    2023-07-09 08:47:51
  • Python 利用切片从列表中取出一部分使用的方法

    2021-04-05 14:14:19
  • PyTorch搭建一维线性回归模型(二)

    2023-02-16 19:27:15
  • Python实现链表反转的方法分析【迭代法与递归法】

    2021-07-07 17:56:37
  • 使用Python判断质数(素数)的简单方法讲解

    2022-07-23 22:34:19
  • python用moviepy对视频进行简单的处理

    2023-08-03 07:02:15
  • 基于pdf2docx模块Python实现批量将PDF转Word文档的完整代码教程

    2022-06-24 15:55:02
  • Pytorch实现基于CharRNN的文本分类与生成示例

    2023-06-29 03:40:32
  • MSSQL中递归SQL查询语句实例说明-

    2024-01-28 19:54:01
  • python中字典和列表的相互嵌套问题详解

    2022-03-19 23:14:53
  • 解决python运行效率不高的问题

    2023-04-01 05:31:36
  • 利用python实现逐步回归

    2023-10-05 19:24:27
  • MySQL日志专项之redo log和undo log介绍

    2024-01-23 03:33:16
  • Python数学形态学实例分析

    2022-11-22 22:32:50
  • python web框架中实现原生分页

    2021-05-15 12:25:42
  • Mybatis如何自动生成数据库表结构总结

    2024-01-21 11:04:30
  • python操作链表的示例代码

    2023-08-08 23:55:41
  • 让SQL Server数据库自动执行管理任务(二)

    2009-03-20 11:40:00
  • python进阶教程之文本文件的读取和写入

    2023-08-03 03:27:47
  • Django 缓存配置Redis使用详解

    2021-12-27 12:34:32
  • asp之家 网络编程 m.aspxhome.com