谢谢大家的回答。我知道为什么我的代码是错误的。
请不要向我提供解决方案,因为我确实有一些解决方案,但我想了解我的代码无法正常工作。
我认为这是由于 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)
您可以使用 [::-1]
反转列表:
print(' '.join(O_string.split()[::-1]))
输出:
'Mr_T is name Me'
这里的[::-1]
表示从头到尾以负一的步长获取所有内容。
或者,您可以使用内置函数reversed
:
>>> ' '.join(reversed(O_string.split()))
'Mr_T is name Me'
关于你的算法。在我看来,以负指数思考总是更困难。我会建议去积极的:
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)
输出:
'Mr_T is name Me'
这里:
x = len(split_result) - 1
为您提供列表的最后一个索引。我们从 0
开始索引。因此,您需要从列表的长度中减去 1
。
你倒数:
x = x-1
一旦得到负指数就停止:
while x >= 0:
提示:不要使用list
作为变量名。它是内置的,最好不要用于命名自己的对象。如果这样做,您将无法再轻松地使用 list()
(在相同的命名空间中)。