Python反向列表

Python反向列表,python,Python,我试图反转一个字符串,并使用下面的代码,但得到的反转列表值为None 守则: str_a = 'This is stirng' rev_word = str_a.split() rev_word = rev_word.reverse() rev_word = ''.join(rev_word) 它返回TypeError。为什么?返回None。因此,不应将其分配给变量 改用这个: stra = 'This is a string' revword = stra.split() revword.r

我试图反转一个字符串,并使用下面的代码,但得到的反转列表值为None

守则:

str_a = 'This is stirng'
rev_word = str_a.split()
rev_word = rev_word.reverse()
rev_word = ''.join(rev_word)
它返回
TypeError
。为什么?

返回
None
。因此,不应将其分配给变量

改用这个:

stra = 'This is a string'
revword = stra.split()
revword.reverse()
revword=''.join(revword)
我已经为您运行了代码,以便您可以看到输出。(还请注意,输出为
stringaisThis
;您可能希望使用
''.join(revword)
,改为使用空格。)


还请注意,您提供的方法仅反转单词,而不是文本@ron.rothman提供了一个链接,该链接详细说明了如何反转整个字符串

这是我个人最喜欢的反转字符串的方法:

stra="This is a string"
revword = stra[::-1]

print(revword) #"gnirts a si sihT
instring = 'This is a string'
reversedstring = instring[::-1]
print reversedstring        # gnirts a si sihT
wordsreversed = ' '.join(word[::-1] for word in instring.split())
print wordsreversed         # sihT si a gnirts
revwordorder = ' '.join(word for word in instring.split()[::-1])
print revwordorder          # string a is This
revwordandorder = ' '.join(word[::-1] for word in instring.split()[::-1])
print revwordandorder       # gnirts a si sihT
或者,如果要颠倒词序:

revword = " ".join(stra.split()[::-1])

print(revword) #"string a is This"

:)

字符串上的各种反转:

stra="This is a string"
revword = stra[::-1]

print(revword) #"gnirts a si sihT
instring = 'This is a string'
reversedstring = instring[::-1]
print reversedstring        # gnirts a si sihT
wordsreversed = ' '.join(word[::-1] for word in instring.split())
print wordsreversed         # sihT si a gnirts
revwordorder = ' '.join(word for word in instring.split()[::-1])
print revwordorder          # string a is This
revwordandorder = ' '.join(word[::-1] for word in instring.split()[::-1])
print revwordandorder       # gnirts a si sihT

作为将来的参考,当一个对象有一个类似于
[]的方法时。reverse()
通常对该对象执行该操作(即,该列表已排序,不返回任何内容,无),而内置函数则对一个对象执行操作并返回一个值(即已排序的列表)

For循环从末尾迭代字符串(最后一个字母)开头(第一个字母)


根据评论和其他答案:

str_a = 'this is a string'
rev_word = ' '.join(reversed(str_a.split()))

方法链接毕竟在Python中是有效的…

列表反转可以使用多种方法来完成。
正如前面的答案中提到的,有两种方法非常突出,一种是使用
reverse()
函数,另一种是使用切片功能。我就我们应该选择哪一种方法给出了一些见解。 我们应该始终使用
reverse()
函数来反转Python列表。原因有两个,一个是原地反转,另一个是速度更快。 我有一些数据支持我的答案

In [15]: len(l)
Out[15]: 1000

In [16]: %timeit -n1 l.reverse()
1 loops, best of 3: 7.87 µs per loop

In [17]: %timeit -n1 l[::-1]
1 loops, best of 3: 10 µs per loop

对于1000整数列表,
reverse()
函数的性能比切片更好。

这里已经有了(就我个人而言,我喜欢那里的''连接(反向)解决方案。)我希望
#reverse
返回一个对
self
的引用。我想Guido van Rossum不像松本幸弘那样热衷于方法链接。我知道它是有效的。但我期待的是“T”当我们在开始和结束时没有提到任何东西时,我希望Python从0开始,然后向后移动。请让我知道它是如何工作的。@ Tethe Type看到这个StaskObjult:“Seang-Jangson,所以,如果我们给-1作为步长值,默认情况下它会向后移动。对吗?考虑提供一些解释!Rev是一个空字符串Val.T。for循环向后迭代原始字符串(从“最后一个字母”结尾到“第一个字母”)。在每次迭代中,相应的字母都会附加到rev.请告诉我这是否有用:]