【发布时间】:2016-10-16 17:19:31
【问题描述】:
给定一个字符串,返回一个新字符串,其中第一个和最后一个字符已交换。
front_back('code') → 'eodc'
front_back('a') → 'a'
front_back('ab') → 'ba'
以上是我试图解决的 www.codingBat.com 上提供的问题之一,以下是我为此编写的代码。
def front_back(str):
str = list(str)
first = [str[0]]
last = [str[-1]]
middle = str[1:-1]
print ''.join (last + middle + first)
现在,当我在计算机上的 python 2.7 中运行此代码时,它似乎可以正常工作,但在代码 bat 上运行时,我收到以下错误:“错误:列表索引超出范围”
现在我想我对这个错误的含义有了一个很好的了解,但我不明白为什么我会得到它,因为我引用的任何索引基本上都保证在至少 2 个字符的字符串中.
【问题讨论】:
-
str[1:-1]将超出'a'的范围,因为只有索引[0]和[-1]有效 -
即使将 [0] 替换为 [1],我也会遇到相同的错误。我知道如果 middle 等于该索引范围,代码将无法按预期工作,但我的意思是它仍然给我列表索引超出范围错误。
标签: python string python-2.x