要求:

  • 原列表:[13, 30, 42, 85, 9, 45]
  • 反转后的列表:[45, 9, 85, 42, 30, 13]
  • 原字符串:hello
  • 反转后的字符串:olleh

Python现成的反转功能:

在Python中有专门进行列表反转的函数–reverse()

l = [13, 30, 42, 85, 9, 45]
l.reverse() # [45, 9, 85, 42, 30, 13]

还可以使用切片操作进行列表反转

l = [13, 30, 42, 85, 9, 45]
print(l[::-1]) # [45, 9, 85, 42, 30, 13]

关于字符串的反转,并没有确切的函数对字符串进行反转,但是字符串也可以使用切片进行反转

s = "hello"
print(s[::-1]) # olleh

以上对列表和字符串的反转,都是现成的,使用起来很方便;但是我们也可以自己为列表和字符串手写一个反转函数(仅供参考)

手写列表反转函数:

思路1:

  • 把列表中的值当成转成字典的value,字典的key为递增的数字
  • 通过sorted()对字典key进行降序
  • 依次取出进行降序后字典的value值,放到列表中
  • 得到的就是反转后的列表

代码:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def reverse_list(n: list) -> list:d = dict(zip([i for i in range(len(n))], n))return [d[k] for k in sorted(d, reverse=True)]

使用:

l = [13, 30, 42, 85, 9, 45]
print(reverse_list(l)) # [45, 9, 85, 42, 30, 13]

思路2:

  • 把列表通过 enumerate() 返回一个可以枚举的对象,该对象的next()方法将返回一个元组
  • 把返回的元组放到一个新的列表中,通过sorted() 进行列表排序(根据列表中元组元素的第一个元素进行排序,使用降序)
  • 遍历排序后的新列表,取每个元组元素的第二个元素,组成新列表
  • 得到的新列表就是反转后的列表

代码:

def reverse_list(l: list) -> list:return [i[1] for i in sorted([v for v in enumerate(l)], reverse=True)]

使用:

l = [13, 30, 42, 85, 9, 45]
print(reverse_list(l)) # [45, 9, 85, 42, 30, 13]

思路3:

  • 取列表最后一位追加到新列表后面
  • 然后通过切片把最后一位之前的数据重新赋值给当前列表
  • 依次重复操作,直至列表为空
  • 得到的新列表就是反转后的

代码:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def reverse_list(n: list) -> list:a = []while len(n) > 0:a.append(n[-1])n = n[:-1]return a

使用:

l = [13, 30, 42, 85, 9, 45]
print(reverse_list(l)) # [45, 9, 85, 42, 30, 13]

思路4:

  • 通过切片获取列表下标为 [-i - 1] 的元素
  • 把切片得到的元素添加到新的列表中
  • 依次重复操作,直至循环结束
  • 得到的新列表就是反转后的

代码:

def reverse_list(n: list) -> list:return [n[-i - 1] for i in range(len(n))]

使用:

l = [13, 30, 42, 85, 9, 45]
print(reverse_list(l)) # [45, 9, 85, 42, 30, 13]

手写字符串反转函数:

思路1:

  • 通过切片获取字符串最后一位
  • 通过字符串拼接,把最后一位拼接到新的字符串中
  • 然后通过切片把最后一位之前的数据重新赋值给当前字符串
  • 依次重复操作,直至字符串为空
  • 得到的新字符串就是反转后的

代码:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def reverse_str(s: str) -> str:new_s = ''while len(s) > 0:new_s += (s[-1])s = s[0:-1]return new_s

使用:

s = "hello"
print(reverse_str(s)) # olleh

思路2:

  • 通过切片获取字符串下标为 [-i - 1] 的元素
  • 通过字符串拼接,把切片得到的元素拼接到新的字符串中
  • 依次重复操作,直至循环结束
  • 得到的新字符串就是反转后的

代码:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def reverse_str(s: str) -> str:new_s = ''for i in range(len(s)):new_s += s[-i - 1]return new_s

使用:

s = "hello"
print(reverse_str(s)) # olleh

以上就是关于Python中列表和字符串的反转操作(这才是冰山一角,还有更多的实现方式),实际应用中还是使用列表自带的函数和切片操作进行反转即可,手写的仅供参考使用,写代码嘛,怎么简单易懂怎么来。

手写Python中列表和字符串的反转相关推荐

  1. Python中列表和字符串的反转

    要求: 原列表:[13, 30, 42, 85, 9, 45] 反转后的列表:[45, 9, 85, 42, 30, 13] 原字符串:hello 反转后的字符串:olleh Python现成的反转功 ...

  2. python中列表字典和字符串的相互转化

    python中列表字典和字符串的相互转化有两种方法: (1)使用str和eval的方法,一个简单的例子如下: data = {'name' : 'ACME','shares' : 100,'price ...

  3. python中列表中的字符串转换成数字

    python中列表中的字符串转换成数字 调整实验时,发现某个嵌套列表的字典中需要把列表中的字符串改成数字,不能直接强转,需要以下代码实现 m_dict_G = {}for key in md_dict ...

  4. 四、Python第四课——Python中列表及其操作(增删改查)

    目录 一.Python中的列表 1.列表的定义和赋值 2.列表的使用 二.列表的"增删改查" 1.列表中元素的增加 A.在列表尾添加元素 B.在列表中插入元素 2.列表中" ...

  5. Python中的原始字符串

    Python中的原始字符串以r开头,使用原始字符串可以避免字符串中转义字符带来的问题. 其实所谓原始字符串,都是给人看的.对于计算机来说,没有什么原始字符串的概念.只是输出给人看的时候,会有一些\n. ...

  6. python判断字符串合法,详解Python判定IP地址合法性的三种方法 python中判断一个字符串是否是IP地址...

    html 中 鼠标放在标签上会显示小手状,其它标签在其他标签上,美工给加了一些样式,鼠标放上去也显示小手状.有哪位大手状样式 有什么不懂的前端问题可以去菜鸟驿站.全都是泡沫,只一刹的花火,所谓的友情, ...

  7. 总结python中列表、元组、字典、集合的共同点和不同点

    前言: 今天就和大家只聊聊python中列表.元组.字典.集合的共同点和不同点,能力有限,写的不好的地方,请大家多多海涵! 列表list 列表和元组·都是有序的 # 元组与列表相似可以通过索引与切片获 ...

  8. Python中如何修改字符串的值

    Python中列表list中的值是可修改的,而元组和字符串的值是不可修改的.看下面的示例: string = 'abcdafg'string[4] = 'e'print(string) 输出结果: s ...

  9. python中列表的运用_python中列表的应用

    标签: 本文主要介绍了:python中列表的主要应用和一些列表自带的一些函数 代码: #!/usr/bin/env python # author by lh # -*- coding:utf-8 - ...

最新文章

  1. android.support.v7.app.ActionBarActivity
  2. 孝感职称计算机考试时间,孝感2017年职称计算机考试报名3月中下旬
  3. 牛客-牛牛的猜球游戏
  4. 正则表达式30分钟入门教程(转)
  5. Yearn V2 Vaults Swap发布,目前未经审核
  6. 【Qt串口波形绘图】基于QCustomPlot的串口波形绘图上位机,源码开放
  7. 【C/C++】顺序容器list和vector
  8. hive 如何将数组转成字符串_Hive 字符串操作[转]
  9. [2018.04.29 T1] 图
  10. android 缓存文件目录在哪个文件夹,哔哩哔哩缓存在哪个文件夹 具体操作步骤
  11. 面试官看到一定会打我---软件测试工程师面试套路和暗语灵魂解密
  12. 瑞利商(Rayleigh quotient)与广义瑞利商(genralized Rayleigh quotient)
  13. 《JavaScript_DOM编程艺术》Chapter05 最佳实践,Chapter06 图片库改进版---20210427
  14. czl蒻蒟的OI之路7
  15. GameObject.Find()能否查找隐藏属性的游戏对象?
  16. QT遇到“常量中有换行符”的问题
  17. 央行数字货币研究报告:法定数字币势在必行,或先应用于票据领域
  18. 淘宝小部件:全新的开放卡片技术
  19. 百度地图(常用方法)
  20. TinyRTC DS1307 的使用

热门文章

  1. 《Python核心编程(第二版)》——1.9 练习
  2. canvas-color的几种设置
  3. Css框架and公共Css文件
  4. [转载] 中华典故故事(孙刚)——24 嫁鸡随鸡_嫁狗随狗
  5. Oracle里default什么意思,ORACLE中默认值default的使用方法.doc
  6. 【转摘】Word提升效率的快捷键
  7. 【PP操作手册】计划订单转生产订单
  8. 全面工作总结的写作技巧和写作要点
  9. 分摊、分配、定期重过账
  10. SAP作业类型应用简介