作者LessonWang (橘白Cat)
看板Python
标题[问题] 字串切割问题
时间Thu Jun 1 12:31:53 2017
如题 小的刚学python没几天
学python的原因是要用来解online judge
刚好学到字串
有一个问题实在搞不太懂
假设s是个字串
为何s[::-1]是这个字串的反转字串
其原理是什麽啊
-----
Sent from JPTT on my Asus ASUS_Z00UD.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 110.28.168.13
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1496291516.A.2B6.html
1F:推 ides13: slice[start:end:step],头尾空白表不指定,step是-1。 06/01 12:42
2F:→ ides13: s[::-1]表示从尾巴执行到开始,每步骤是向後1步。 06/01 12:44
4F:推 Yshuan: 因为python贴心的会将负数N的index提取 当作倒数第N个的 06/01 14:35
5F:→ Yshuan: 我s[::-1] 我是想像成 for (i=0;abs(i)<len(s);--i) 在跑 06/01 14:36
6F:推 vi000246: 我也很讨厌python的slice语法 都要死背 06/01 16:37
7F:推 ides13: 在start和end的负号是指倒数第几个。在step负号指反向。 06/01 17:17
8F:→ LessonWang: 感谢各位的解释 我已经了解了 有了slice蛮方便的 06/01 17:48
9F:→ os653: 不用slice语法的话,程式会多很多行,读起来也不直觉 06/01 20:35
真的 而且字串要反转 一般都使用回圈来解决 用slice一行搞定 不知道python的内部演算法是否比回圈还快呢
※ 编辑: LessonWang (110.28.168.13), 06/01/2017 22:40:33
10F:→ uranusjr: 反转字串 str(reversed(s)) 一行不就搞定了吗 06/02 11:32
况且线上评测系统online judge会限制使用特定的函数 刚好slice不是函数 蛮方便的
其实用slice也是一行搞定xdd
※ 编辑: LessonWang (110.28.168.13), 06/02/2017 13:05:25
※ 编辑: LessonWang (110.28.168.13), 06/02/2017 13:06:52
11F:→ vi000246: 刷leetcode还是不要用现成的函数 手动刻一个吧 06/02 16:01
你说的是 可是有执行时间限制的话 我还是倾向於使用原生的slice来反转字串 毕竟原生的内部函式演算法 应该是比我们手刻的还快吧(?
※ 编辑: LessonWang (110.28.168.13), 06/02/2017 19:35:21
12F:推 jrshiang0423: 不一定比手刻快,除非写的很糟糕 06/11 04:29