当前位置:
首页 > temp > 简明python教程 >
-
python字符串反转
实现字符串反转的方法有很多,这里我简单介绍一些常用的。
1)字符串切片:
>>> s = '123456' >>> print(s[::-1]) 654321
这种方式最简单,效率最高,是我最推荐的方法。当然这里的切片并不是字符串独有的,列表也可以,实际上我们认为字符串是特殊的列表。
>>> s = '123456' >>> list(s)[::-1] ['6', '5', '4', '3', '2', '1'] >>> print(''.join(list(s)[::-1])) 654321
2)借助列表的reverse():
>>> s = '123456' >>> ls = list(s) >>> ls.reverse() >>> ls ['6', '5', '4', '3', '2', '1'] >>> print(''.join(ls)) 654321
3)使用reduce()函数:
这里要注意python版本问题,如果是python 2,那么reduce()是一个内置函数,可以直接使用;但是在python 3,reduce()从内置函数移除了,放入了functools模块,因此需要从functools中导入。这里我使用的是python 3:
>>> s = '123456' >>> from functools import reduce >>> reduce(lambda x,y:y+x,s) '654321' >>> reduce(lambda x,y:x+y,s) '123456'
大家有没有发现两次reduce有什么不同。没有的话我们再看两个例子就明白了:
>>> a = [1,2,3,4] >>> reduce(lambda x,y:y+x,a) 10 >>> reduce(lambda x,y:x+y,a) 10
首先lambda定义一个匿名函数,它有两个参数x和y,第一次是计算y+x,第二次是计算x+y。
reduce() 函数会对参数序列中元素进行累积。函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
因此,上面两种结果的不同其实是reduce()的迭代对象发生了变化导致,对于数字列表而言前后并没有区别,但是字符串就不同了,当迭代对象是字符串时,'+'号不再是加号,而是连接符,这就是为什么x+y和y+x得到相反结果的原因所在。
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数