在python中反转句子

Ale*_*xis 1 python indexing loops

谢谢你的所有答案.我知道我的代码错了.

请不要向我提供解决方案,因为我确实有一些,但后来我想了解我的代码不起作用.

我认为这是由于,while x <= -len(split_result):"但我认为逻辑是正确的.我的代码出了什么问题?

O_string = ("Me name is Mr_T")
split_result = O_string.split()
print(split_result)

x=0
list=[]

while x <= -len(split_result):
    list.append(split_result[x-1])
    x = x-1

result=" ".join(list)
print (result)
Run Code Online (Sandbox Code Playgroud)

Mik*_*ler 7

您可以使用以下内容撤消列表[::-1]:

print(' '.join(O_string.split()[::-1]))
Run Code Online (Sandbox Code Playgroud)

输出:

'Mr_T is name Me'
Run Code Online (Sandbox Code Playgroud)

[::-1]意味着从开始到结束的所有步骤都是减1的步长.

或者,您可以使用内置函数reversed:

>>> ' '.join(reversed(O_string.split()))
'Mr_T is name Me'
Run Code Online (Sandbox Code Playgroud)

关于你的算法.在我看来,在负面指数中思考总是比较困难.我建议积极的做法:

O_string = ("Me name is Mr_T")
split_result = O_string.split()

res = []
x = len(split_result) - 1
while x >= 0:
    res.append(split_result[x])
    x = x-1

result=" ".join(res)
print (result) 
Run Code Online (Sandbox Code Playgroud)

输出:

'Mr_T is name Me'
Run Code Online (Sandbox Code Playgroud)

这里:

x = len(split_result) - 1
Run Code Online (Sandbox Code Playgroud)

为您提供列表的最后一个索引.我们开始索引0.所以你需要1从列表的长度中减去.

你算了下来:

x = x-1
Run Code Online (Sandbox Code Playgroud)

并在获得负面指数后立即停止:

while x >= 0:
Run Code Online (Sandbox Code Playgroud)

提示:不要list用作变量名.它是内置的,最好不要用于命名自己的对象.如果这样做,您将无法轻松使用list()(在同一名称空间中).