Python字符串/列表反转,不使用任何库模块或虚拟变量

时间:2012-08-03 13:30:27

标签: python string list

我想知道如何在不使用任何库模块甚至虚拟变量或扩展切片表示法的情况下反转字符串,例如s[::-1]

例如我有一个字符串 >>>['f','a','l','u','b']

输出应为>>>['b','u','l','a','f']

我搜索了这两个链接,但他们没有提供此解决方案

String reversal in Python

Reverse a string in Python

Python reversing a string using recursion

这些链接没有提供答案。 我知道字符串是不可变的,这正是我在列表中使用字符串字符的原因,几乎每个人都使用内置函数(我已经知道)解决了它。仍然没有具体的答案

这个问题在接受我的采访时被问到了。而且我认为鼓励新来者更好,而不是严厉批评他们的问题

4 个答案:

答案 0 :(得分:3)

正如@Chris在评论中提到的那样,

seq = ['f','a','l','u','b'] # this is a list not a string

这样您就可以轻松地就地反转列表

seq.reverse()

答案 1 :(得分:1)

s = 'falub'
s = ''.join(reversed(s))

list(reversed(s)) 

如果您想将其保留为列表。

答案 2 :(得分:1)

您可以使用此方法在没有切片表示法的情况下进行反转,无需拨打list()

s = "hello world"
s_reversed = ''.join(reversed(s))

// output
'dlrow olleh'

答案 3 :(得分:1)

你可以做一些疯狂的按位操作,但这不是我的强项。由于我不会考虑内置函数“库模块”,所以我认为你可以这样做:

my_str = "".join(reversed(my_str))

但你真的不想这样做。

ETA:实际上,看过它,看起来像这个问题的“疯狂按位”解决方案实际上要复杂得多,并且可能需要库模块。​​