0

我正在编写使用 reverse() 函数反转字符串的代码,例如 GOOD ---> DOOG w/o。我快到了...

a = "hello"

for i in range(1,len(a)+1): 

    print a[-i], 

当我使用 join 函数完成代码时,它并没有像我预期的那样工作。任何想法为什么?使我抓狂。

a = "hello"

for i in range(1,len(a)+1): 

    print ""join.a([-i],) 
4

3 回答 3

3

您可以像这样在一行中反转字符串:

a[::-1]

切片就像[start:stop:step]. 因此,当您使用 -1 作为 时step,它会反向打印字符串。

>>> a = "hello"
>>> a[::-1]
'olleh'
于 2013-01-29T18:09:23.893 回答
2

你可以这样做:

''.join(a[-i] for i in range(1,len(a)+1))

如果可迭代项具有多个要实际连接在一起的项,则您将传递一个只有一项的可迭代对象到join何时真正工作得最好。join这里我传递了一个生成器表达式。

但实际上,最简单、最有效的反转字符串的方法是:

a[::-1]
于 2013-01-29T18:08:47.990 回答
1

我会去,s[::-1]但如果我不得不写一个循环,那么:

for i in range(len(s) - 1, -1, -1):
    print s[i]
于 2013-01-29T18:23:08.527 回答