为什么没有.reverse()工作?

时间:2017-11-15 06:38:43

标签: python list reverse

我正在尝试一个句子并拆分该句子,将其翻转,并将其打印到屏幕上。

我无法理解.reverse()的工作原理? 当我做类似的事情时:

test = ['This','is','a','test']
new_test = test.reverse()
print(new_test)

当我跑步时,我得到None,这是为什么?如何让.reverse()工作?

这是我的最终代码:

sentence = input("What is your sentence? ")
split_sentence = sentence.split().reverse()
for word in sentence:
    print(word,end='')

5 个答案:

答案 0 :(得分:6)

reverse()在适当的位置运行,并且不会返回新数组。如果要使用副本,则需要执行以下操作:

arr = [1, 2, 3, 4, 5]
copy = arr.copy() # omit this if you don't want a new list
copy.reverse()
# copy now contains [5, 4, 3, 2, 1]
# arr still contains [1, 2, 3, 4, 5]

答案 1 :(得分:5)

reverse()就地撤销列表,然后返回None。只需打印原始列表:

test = ['This','is','a','test']
test.reverse() # In-place!
print(test)

答案 2 :(得分:4)

您可以使用slicing

test = ['This','is','a','test']
>>> print(test[::-1])
['test', 'a', 'is', 'This']

答案 3 :(得分:3)

reverse()函数执行了列表的反转以及您在None列表中获得new_test的原因。您可以使用以下代码段来反转列表。

from copy import deepcopy

test = ['This','is','a','test']
new_test = deepcopy(test)
print(new_test)
new_test.reverse()
print(new_test)

<强>输出:

['This', 'is', 'a', 'test']
['test', 'a', 'is', 'This']

答案 4 :(得分:0)

list1 = [1,2,3,4,5,6]
print([ele for ele in reversed(list1)])

输出:

[6,5,4,3,2,1]