为什么 .reverse() 不起作用?
Why isn't .reverse() working?
我正在尝试对一个句子进行拆分、反转并打印到屏幕上。
我无法理解 .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='')
您可以使用slicing
test = ['This','is','a','test']
>>> print(test[::-1])
['test', 'a', 'is', 'This']
reverse()
就地反转列表,returns None
。只需打印您的原始列表:
test = ['This','is','a','test']
test.reverse() # In-place!
print(test)
reverse()
就地操作,而不是 return 一个新数组。如果您想使用副本,您需要执行以下操作:
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]
reverse()
函数执行列表的原位反转,这就是您在 new_test
列表中获得 None
的原因。您可以使用以下代码段来获得反向列表。
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']
list1 = [1,2,3,4,5,6]
print([ele for ele in reversed(list1)])
输出:
[6,5,4,3,2,1]
我正在尝试对一个句子进行拆分、反转并打印到屏幕上。
我无法理解 .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='')
您可以使用slicing
test = ['This','is','a','test']
>>> print(test[::-1])
['test', 'a', 'is', 'This']
reverse()
就地反转列表,returns None
。只需打印您的原始列表:
test = ['This','is','a','test']
test.reverse() # In-place!
print(test)
reverse()
就地操作,而不是 return 一个新数组。如果您想使用副本,您需要执行以下操作:
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]
reverse()
函数执行列表的原位反转,这就是您在 new_test
列表中获得 None
的原因。您可以使用以下代码段来获得反向列表。
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']
list1 = [1,2,3,4,5,6]
print([ele for ele in reversed(list1)])
输出:
[6,5,4,3,2,1]