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))  # 输出:<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')

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python一阶马尔科夫链生成随机DNA序列实现示例

    目录 1. 原理 2. 代码实现 3. 运行结果 1. 原理 对于DNA序列,一阶马尔科夫链可以理解为当前碱基的类型仅取决于上一位碱基类型.如图1所示,一条序列的开端(由B开始)可能是A.T.G.C四种碱基(且可能性相同,均为0.25),若序列的某一位是A,则下一位碱基是A.T.G.C的概率分别为0.25.0.20.0.20.0.20,下一位无碱基(即序列结束,状态为E)的概率为0.15. 图1 DNA序列的一阶马尔科夫链 2. 代码实现 以下代码运行于Jupyter Notebook (Pyt

  • Python办公自动化批量处理文件实现示例

    目录 引言 需求分析 Python实现 结束语 引言 要说在工作中最让人头疼的就是用同样的方式处理一堆文件夹中文件,这并不难,但就是繁.所以在遇到机械式的操作时一定要记得使用Python来合理偷懒!今天我将以处理微博热搜数据来示例如何使用Python批量处理文件夹中的文件,主要将涉及: Python批量读取不同文件夹() Pandas数据处理() Python操作Markdown文件() 需求分析 首先来说明一下需要完成的任务,下面是我们的文件夹结构 因为微博历史热搜是没有办法去爬的,所以只能写

  • Python办公自动化Word转Excel文件批量处理

    目录 前言 首先使用Python将Word文件导入 row和cell解析所需内容 内层解析循环 前言 大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于涉及文件私密所以文中的具体内容已做修改) 一共有近2600条类似格式的表格细栏,每个栏目包括的信息有: 日期 发文单位 文号 标题 签收栏 需要提取其中加粗的这三项内容到Excel表格中存储,表格样式如下: 也就是需要将收文时间.文件标题.文号填到指定位置,同时需要将时间修改为标准格式,如果是完全手动复制和修改时间,

  • 自学python求已知DNA模板的互补DNA序列

    目录 DNA序列 简述其代码 原始序列上进行替换 利用upper()输出大写结果 结尾 DNA序列 ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT 求其互补DNA序列. 在生物上DNA互补序列简述表达可以表示为:A与T,C与G互补,可以理解为将上述序列中现有的A用T代替,C用G代替,T用A代替,G用C代替,则其互补序列为: TGACTAGCTAATGCATATCATAAACGATAGTATGTATATATAGCTACGCAAGTA 根

  • python从gbff文件中直接提取cds序列

    目录 什么是GBFF文件 每个序列条目所代表的意义 最后直接上代,更改输入和输出文件即可使用 什么是GBFF文件 GenBank纯文本文件格式(GenBank flatfile, 简称GBFF) GBFF是GenBank数据库的基本信息单位 GBFF序列文件由单个的序列条目组成. 序列条目由字段组成,每个字段由关键字起始,后面为该 字段的具体说明. 字段分若干次子字段,以次关键字或特性表说明符开始. 每个序列条目以双斜杠“//*作结束标记 每个序列条目所代表的意义 1. LOCUS(代码)序列的

  • python中序列的逆序方式

    目录 序列的逆序方式 1. range 函数 2. reversed 函数 3. 其他方法 一个字符串的逆序函数 序列的逆序方式 1. range 函数 一般 for 循环中总会用到 range 函数来进行顺序遍历,同样的,range 也能表示序列的逆序. 在 range(start, end, step) 中,start 表示序列的起始索引(默认为0),end 表示终止索引,step 表示移动步长(默认为1).由于 range 函数是“顾头不顾尾” 的形式,因此实际上其遍历的索引终止位置是 e

  • python中字符串数组逆序排列方法总结

    python中字符串数组如何逆序排列?下面给大家介绍几种方法: 1.数组倒序: 原始元素的倒序排列 (1)切片 >>> arr = [1,2,3,4,3,4]>>> print (arr[::-1])[4, 3, 4, 3, 2, 1] (2)reverse() >>> arr = [1,2,3,4,3,4]>>> arr.reverse()>>> print (arr)[4, 3, 4, 3, 2, 1] (3)r

  • Python中序列的修改、散列与切片详解

    前言 本文主要给大家介绍了关于Python中序列的修改.散列与切片的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. Vector类:用户定义的序列类型 我们将使用组合模式实现 Vector 类,而不使用继承.向量的分量存储在浮点数数组中,而且还将实现不可变扁平序列所需的方法. Vector 类的第 1 版要尽量与前一章定义的 Vector2d 类兼容. Vector类第1版:与Vector2d类兼容 Vector 类的第 1 版要尽量与前一章定义的 Vector2d

  • python对指定字符串逆序的6种方法(小结)

    对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了,今天总结了一下python中对于字符串的逆序输出的几种常用的方法 方法一:直接使用字符串切片功能逆转字符串 #!usr/bin/env python # encoding:utf-8 def strReverse(strDemo): return strDemo[::-1] print(strReverse('pythontab.com')) 结果: moc

  • 对Python中type打开文件的方式介绍

    这几天在看<利用Python进行数据分析>,在第六章数据加载.存储.与文件格式中遇到个小问题. 在Linux访问文件是用:!cat ch06/ex1.csv 在Windows命令行中使用:!type ch06\ex1.csv 需要作说明的是: 1.Windows与Linux不同的是win用的"\"添加子目录,而Linux使用"/"添加: 2.win下也可以使用绝对路径进行访问,在所在目录下安如图操作方式进行复制,此时需加引号进行使用:!type &quo

  • C++实现英文句子中的单词逆序输出的方法

    本文实例讲述了C++实现英文句子中的单词逆序输出的方法.分享给大家供大家参考,具体如下: #include "stdafx.h" #include <iostream> #include <string> #include <stack> using namespace std; int main(int arc, char** argv) { string str="I come from liaoning."; stack&l

  • python实现将一个数组逆序输出的方法

    方法一: def printTheReverseArray(self): list_1 = [1, 2, 3, 4, 5, 6, 7] length = len(list_1) for i in range(0, length): print(length - i,end="") 方法二: def printTheReverseArray(self): '头插法' list_1 = [1, 2, 3, 4, 5, 6, 7] list_2 = [list_1[0]]# for i in

  • Python实现字符串的逆序 C++字符串逆序算法

    本文实例为大家分享了Python/C++实现字符串逆序的具体代码,供大家参考,具体内容如下 题目描述:将字符串逆序输出 Python实现一: 借助于列表的reverse()函数,需要注意的是,该函数没有返回值,只会让列表原地逆序 借助于"".join()函数,实现列表向字符串的转换 def strReverse(s): lst = list(s) lst.reverse() ans = "".join(list(lst)) return ans s = str(in

  • 在Python中通过threshold创建mask方式

    我就废话不多说了,直接上代码吧! [code] import numpy as np threshold=2 a=np.array([[1,2,3],[3,4,5]]) b=a>threshold print("a="+str(a)) print("b="+str(b)) [result] a=[[1 2 3] [3 4 5]] b=[[False False True] [ True True True]] 以上这篇在Python中通过threshold创建

  • python中数据库like模糊查询方式

    在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%. 将在Python中执行的sql语句改为: sql = "SELECT * FROM table_test WHERE value LIKE '%%%%%s%%%%'" % test_value 执行成功,print出SQL语句之后为: SELECT * FROM table_test WHERE value LIKE '%%public%%' Python在执行sql语句的时候,同样也会有%格式化的问题,仍然需要使

随机推荐