在python中反转句子

在python中反转句子,python,loops,indexing,Python,Loops,Indexing,谢谢你的回答。我知道为什么我的代码错了 请不要向我提供解决方案,因为我确实有一些,但我想了解我的代码不起作用 我认为这是因为而x可以使用反向函数以及str.join O_string = ("Me name is Mr_T") split_result = O_string.split() split_result.reverse() print " ".join(split_result) 可以使用反向函数以及str.join O_string = ("Me name is Mr_T") s

谢谢你的回答。我知道为什么我的代码错了

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


我认为这是因为
而x可以使用反向函数以及str.join

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

可以使用反向函数以及str.join

O_string = ("Me name is Mr_T")
split_result = O_string.split()
split_result.reverse()
print " ".join(split_result)
您可以尝试:

>>> O_string = ("Me name is Mr_T")
>>> O_list = O_string.split()
>>> O_list.reverse()
>>> " ".join(O_list)
'Mr_T is name Me'
您可以尝试:

>>> O_string = ("Me name is Mr_T")
>>> O_list = O_string.split()
>>> O_list.reverse()
>>> " ".join(O_list)
'Mr_T is name Me'

您可以使用
[::-1]
:

print(' '.join(O_string.split()[::-1]))
输出:

'Mr_T is name Me'
'Mr_T is name Me'
这里的
[::-1]
意味着从开始到结束,每一步都是负一步

或者,您可以使用内置功能
反向

>>> ' '.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'
'Mr_T is name Me'
在这里:

提供列表的最后一个索引。我们从
0
开始索引。因此,您需要从列表的长度中减去
1

你可以用以下方式倒计时:

x = x-1
并在得到负指数时立即停止:

while x >= 0:

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

您可以使用
[:-1]
:

print(' '.join(O_string.split()[::-1]))
输出:

'Mr_T is name Me'
'Mr_T is name Me'
这里的
[::-1]
意味着从开始到结束,每一步都是负一步

或者,您可以使用内置功能
反向

>>> ' '.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'
'Mr_T is name Me'
在这里:

提供列表的最后一个索引。我们从
0
开始索引。因此,您需要从列表的长度中减去
1

你可以用以下方式倒计时:

x = x-1
并在得到负指数时立即停止:

while x >= 0:

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

您可以使用reversed来反转句子:

o_string = "Me name is Mr_T"
words = sentence.split()
o_string = " ".join(reversed(words))
print(o_string)

您可以使用reversed来反转句子:

o_string = "Me name is Mr_T"
words = sentence.split()
o_string = " ".join(reversed(words))
print(o_string)

在python中,
list[::-1]
将给出一个列表,其中列表中的所有元素都存储在反向索引位置。例如:
reverseList1=list1[::-1]
使用此选项。

在python中,
list[:-1]
将提供列表,其中列表的所有元素都存储在反向索引位置。例如:
reverseList1=list1[:-1]
使用此选项。

要回答“我的代码有什么问题?”让我们看看shell中发生了什么:

>>> O_string = ("Me name is Mr_T")
split_result = O_string.split()
print(split_result)
['Me', 'name', 'is', 'Mr_T']
>>> x=0
>>> len(split_result)
4
>>> -len(split_result)
-4
>>> x
0
>>> 0 <= 4
True
>>> 0 <= -4
False
>>> x <= -len(split_result)
False
>>> while False: print('this will not get printed')
要回答“我的代码怎么了?”,让我们看看shell中发生了什么:

>>> O_string = ("Me name is Mr_T")
split_result = O_string.split()
print(split_result)
['Me', 'name', 'is', 'Mr_T']
>>> x=0
>>> len(split_result)
4
>>> -len(split_result)
-4
>>> x
0
>>> 0 <= 4
True
>>> 0 <= -4
False
>>> x <= -len(split_result)
False
>>> while False: print('this will not get printed')

'.join('Hello world.split()[::-1])
在初始化为
x=0
后,您正在检查
x
是否小于或等于负值,因此在
循环期间,您将永远无法输入
。这是一个重复的问题,询问如何颠倒字符串中字符的顺序。但是,这个问题是不同的:它询问如何颠倒句子中单词的顺序(由空格字符分隔)。
'.join('Hello world.split()[:-1])
您正在检查初始化为
x=0
x是否小于或等于负值,因此,当
循环时,您将永远不会输入
。这是一个重复的问题,询问如何颠倒字符串中字符的顺序。然而,这个问题是不同的:它问的是如何颠倒句子中单词的顺序(由空格字符分隔)。假设我在开始时设置了x=0,@Alexis那么你必须做其他调整来补偿:
x>=-len(split_result)+1
split_result[x-1]
。假设我在开始时设置了x=0,@亚历克西斯:那么你必须做其他调整来补偿:
x>=-len(分割结果)+1
分割结果[x-1]