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)
您可以使用以下内容撤消列表[::-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()(在同一名称空间中).