使用列表反转Python中的单词
我需要写一个函数,它接收一个像这样的列表:
[d,o,g] --> 每个字符都有一个位置。
然后这个函数的返回结果是把这个单词反过来写。
到目前为止,我有了这个:
def invertido(x):
largo= len(x)
for i in range (0, largo/2):
x[i] = x[largo -i]
print x
但是我遇到了一个错误:TypeError: 'str'对象不支持项赋值
1 个回答
2
你可以直接用Python中的索引语法来实现这个功能。试试下面的代码:
word_inverted = word[-1::-1]
这段语法的意思是“从word
的最后一个字母开始(索引-1
),每次向前移动一个字母(最后的-1
表示这个),然后遍历这个单词中的所有字母(中间的::
表示这一点)”。
一般来说,你可以用array[first:last:step]
的语法来索引一个数组(字符串其实就是字符的数组)。这里的first
是你想要的第一个元素,last
是你不想要的第一个元素(也就是说,你得到的最后一个元素是last
之前的那个),而step
是你每次想移动的步长。
你还可以用一些快捷方式来获取从单词开头到last
的所有字母,写作array[:last:step]
;从first
到结尾的所有字母,写作array[first::step]
;以及以某个间隔step
获取所有字母,写作array[::step]
。最后,如果你给step
一个负值,那么你就会反向遍历这个数组。