如何切片序列以获取最后一项?

时间:2010-07-07 22:38:54

标签: python

我正在练习切片,我想运行一个向后打印名称的程序。

主要是,我想知道如何访问序列中的最后一项。

我写了以下内容:

name = raw_input("Enter Your Name: ")
backname = ???

print backname

这是一种合理的方法吗?显然,???不是我语法的一部分,只是询问应该去哪里。

7 个答案:

答案 0 :(得分:3)

要访问序列中的最后一项,请使用:

print name[-1]

这与:

相同
print name[len(name) - 1]

反转序列在Python中有一个共同的习惯用法:

backname = name[::-1]

Good primer for Python slice notation问题有更完整的信息。

答案 1 :(得分:1)

backname[-1] #the last item in the sequence

 #To reverse backname (the long way):
aList = [c for c in backname]  #will give you ['1', '2', ..., 'n']
aList.reverse()                #aList will be ['n', ..., '2', '1] 
backname = "".join(aList)      #backname reversed

 #To reverse backname, as other answers replied:
 backname[::-1]

答案 2 :(得分:1)

你想要name[::-1]。 -1是切片的“步骤” - 例如,如果您想要其他所有字母,则使用name[::2]

答案 3 :(得分:1)

您可以使用负数索引来访问从列表末尾开始计算的项目,因此name[-1]将为您提供最后一个字符。但是,第三个切片参数是一个步骤,也可以是负数,因此这将为您提供相反的整个字符串:

name[::-1]

答案 4 :(得分:1)

使用切片语法,您可以使用:

backname = name[::-1]

两个冒号显示切片的前两个参数保留为默认值,因此从开始处理,处理结束,但向后退(-1)。

答案 5 :(得分:0)

您可能想要阅读文档: http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-buffer-xrange

如果你愿意,有一种方法可以为你翻转字符串。对于您提出的具体问题,要访问序列的最后一项,请使用“seq [-1]”。

答案 6 :(得分:0)

它确实看起来很棒。你的第二行应该是

backname = name[::-1]