4 回答
TA贡献1780条经验 获得超5个赞
快速回答(TL;DR)
例
### example01 -------------------
mystring = 'coup_ate_grouping'
backwards = mystring[::-1]
print backwards
### ... or even ...
mystring = 'coup_ate_grouping'[::-1]
print mystring
### result01 -------------------
'''
gnipuorg_eta_puoc
'''
详细答复
背景
提供这一答复是为了解决@odigity引起的以下关切:
哇。一开始我对保罗提出的解决方案感到震惊,但当我读到第一条评论时,我对这种恐惧退避三舍:“那是非常重要的节奏曲。干得好!”我感到非常不安,一个如此聪明的社区认为使用如此神秘的方法来做一些如此基本的事情是个好主意。为什么不只是.反向()?
问题
语境
Python2.x Python 3.x 设想:
开发人员希望转换一个字符串。 转换是反转所有字符的顺序。
解
example 01生成所需的结果,使用
陷阱
开发人员可能会期望类似的 string.reverse()
土生土长的习语 “)新开发人员可能无法阅读解决方案 开发人员可能会尝试实现他或她自己的版本。 string.reverse()
以避免切片表示法。 在某些情况下,切片表示法的输出可能违反直觉: print 'coup_ate_grouping'[-4:] ## => 'ping'
相比较 print 'coup_ate_grouping'[-4:-1] ## => 'pin'
相比较 print 'coup_ate_grouping'[-1] ## => 'g'
例如,见实例02。 索引的不同结果 [-1]
可能会让一些开发人员
理据
string.reverse()
第02条
### example02 -------------------
## start (with positive integers)
print 'coup_ate_grouping'[0] ## => 'c'
print 'coup_ate_grouping'[1] ## => 'o'
print 'coup_ate_grouping'[2] ## => 'u'
## start (with negative integers)
print 'coup_ate_grouping'[-1] ## => 'g'
print 'coup_ate_grouping'[-2] ## => 'n'
print 'coup_ate_grouping'[-3] ## => 'i'
## start:end
print 'coup_ate_grouping'[0:4] ## => 'coup'
print 'coup_ate_grouping'[4:8] ## => '_ate'
print 'coup_ate_grouping'[8:12] ## => '_gro'
## start:end
print 'coup_ate_grouping'[-4:] ## => 'ping' (counter-intuitive)
print 'coup_ate_grouping'[-4:-1] ## => 'pin'
print 'coup_ate_grouping'[-4:-2] ## => 'pi'
print 'coup_ate_grouping'[-4:-3] ## => 'p'
print 'coup_ate_grouping'[-4:-4] ## => ''
print 'coup_ate_grouping'[0:-1] ## => 'coup_ate_groupin'
print 'coup_ate_grouping'[0:] ## => 'coup_ate_grouping' (counter-intuitive)
## start:end:step (or start:end:stride)
print 'coup_ate_grouping'[-1::1] ## => 'g'
print 'coup_ate_grouping'[-1::-1] ## => 'gnipuorg_eta_puoc'
## combinations
print 'coup_ate_grouping'[-1::-1][-4:] ## => 'puoc'
结语
另见
添加回答
举报