Python反向列表

时间:2012-09-09 02:40:57

标签: python

我正在尝试反转字符串并使用下面的代码,但结果反向列表值为None。

代码:

str_a = 'This is stirng'
rev_word = str_a.split()
rev_word = rev_word.reverse()
rev_word = ''.join(rev_word)

返回TypeError。为什么呢?

8 个答案:

答案 0 :(得分:118)

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

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

print(revword) #"gnirts a si sihT

或者,如果你想颠倒单词顺序:

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

print(revword) #"string a is This"

:)

答案 1 :(得分:51)

.reverse()返回None。因此,您不应将其分配给变量。

请改用:

stra = 'This is a string'
revword = stra.split()
revword.reverse()
revword=''.join(revword)

我为您运行代码on IDEOne,以便您可以看到输出。 (另请注意,输出为stringaisThis;您可能希望使用带有空格的' '.join(revword)。)

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

答案 2 :(得分:7)

字符串上的各种反转:

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

答案 3 :(得分:6)

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

答案 4 :(得分:3)

>>> s = 'this is a string'
>>> s[::-1]
'gnirts a si siht'
>>> ''.join(reversed(s))
'gnirts a si siht'

答案 5 :(得分:0)

for循环将字符串从结尾(最后一个字母)重复到开始(第一个字母)

>>> s = 'You can try this too :]'
>>> rev = ''
>>> for i in range(len(s) - 1, -1, -1):
...     rev += s[i]
>>> rev
']: oot siht yrt nac uoY'

答案 6 :(得分:0)

根据评论和其他答案:

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

方法链接毕竟在Python中起作用......

答案 7 :(得分:0)

列表反转可以使用多种方式完成。
如前面的答案中所提到的,两个非常突出,一个具有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()函数与切片相比表现更好。