扭转一个字符串在Python

我一直在寻找一种方式来向后打印一个字符串,并在谷歌快速搜索之后,我发现这个方法:

假设'a'是一个字符串变量。 这将向后返回的'a'字符串:

a[::-1]

谁能解释如何工作的?

--------------解决方案-------------

当然[::]是扩展切片运算符。 它可以让你走子。 基本上,它的工作原理是指定要为[开始:结束:步]哪些元素,它适用于所有序列。 关于它的两个巧妙的事情:

  • 可以省略的一个或多个元素,它不会“正确的事”
  • 负数的开始,结束和步之意

对于开始和结束,如果你给一个负数,则意味着从序列的最后指望。 举例来说,如果我有一个列表:

l = [1,2,3]

然后l[-1]是3, l[-2] 2,和l[-3] 1。

step的参数,负数意味着通过序列向后工作。 因此,对于一个列表::

l = [1,2,3,4,5,6,7,8,9,10]

你可以写l[::-1]这基本上意味着使用-1的步长,同时通过列表读取。 Python会“做正确的事”在开始填充和停止时,所以它遍历列表向后,让您[10,9,8,7,6,5,4,3,2,1]

我给出的列表中的例子,但字符串是只是一个序列的工作方式相同。 因此, a[::-1]指你的加盟,通过串倒着走路让人物来构建一个字符串。

“-1”的部分表示的“步骤”的部分的限幅;在这种情况下,它通过在字符串1个字符的时间,而是向后(负的步骤是指从字符串的末尾开始)。 如果指定了步为2,例如,你会得到字符串的所有其他字符,从第一个。 如果指定为-2的一个步骤,那么你会得到字符串的所有其他角色,从最后一个字符和工作倒退。

因此,概括地说,如果a = '12345'

  • a[::2]变成135
  • a[::-1]变为54321
  • a[::-2]变成531

我认为有以下使得反向打印字符串多一点感觉,但也许这只是我:

for char in reversed( myString ):
print( char, end = "" )

这就是所谓的切片符号在Python,你可以阅读多一点它是如何工作在这里:

http://stackoverflow.com/questions/509211/good-primer-for-python-slice-notation

这是使用扩展切片 - 一个字符串是Python中的序列,股票与其他序列中的一些方法(即列表和元组)。 有三个部分切片 - 启动,停止和步骤。 他们都有默认值 - 开始默认为0,停止默认的len(序),以及步默认为1。通过指定[:: - 1]你说:“在序列中的所有元素,从头开始,到最后倒退一次。

这个功能引入在Python 2.3.5,你可以阅读更多的新增文档。

这是扩展切片表示法:

sequence[start:end:step]

在这种情况下,步骤-1表示向后,并省略的开始和结束意味着要整个字符串。

[:: - 1]给出的字符串中分​​得一杯羹。 完整的语法是a[begin:end:step]这给[开始],A [开始+步] ... A [结束-1]。 当步骤是否定的,你开始在年底将开始。

最后,开始缺省为序列的开始,结束的结束,和步骤为-1。

字符串是实质上的字符序列,并因此切割操作的工作就可以了。 你在做什么,其实是:

- >得到的片'一',从开始到结束,步长为1落后。

我会做这样的:

variable = "string"
message = ""
for b in variable:
message = b+message
print (message)

它打印:gnirts

考虑下面的列表

l=[12,23,345,456,67,7,945,467]

另一个技巧逆转列表可能是:

l[len(l):-len(l)-1:-1] [467, 945, 7, 67, 456, 345, 23, 12]

l[:-len(l)-1:-1] [467, 945, 7, 67, 456, 345, 23, 12]

l[len(l)::-1] [467, 945, 7, 67, 456, 345, 23, 12]

在YouTube上观看这个伟大的教程:http://www.youtube.com/watch?v=_IySULAqE_k

我们可以利用追加和流行做

def rev(s):
i = list(s)
o = list()
while len(i) > 0:
o.append(t.pop())

return ''.join(o)

分类:蟒蛇 时间:2015-03-14 人气:0
本文关键词: 串,蟒蛇,片
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.712 (s). 10 q(s)