def reverse_list(list1):
length = len(list1)
for i in range(length):
list1[i] = list1[(length - 1) - i]
return list1
我这里有一个功能,理论上应该颠倒任何给出1D列表的顺序。它改变了我认为的列表,因此修改了原始列表。好的,可以。我正在使用的列表是
list1 = [1, 2, 3, 4, 5]
理论:
list[0] = list[4-0] = list[4] # 5
list[1] = list[4-1] = list[3] # 4
list[2] = list[4-2] = list[2] # 3
list[3] = list[4-3] = list[1] # 2
list[4] = list[4-4] = list[0] # 1
应该给我[5, 4, 3, 2, 1]
,而是回复[5, 4, 3, 4, 5]
。我无法弄清楚为什么会这样。我只使用len()
函数,没有其他内置函数用于列表。
答案 0 :(得分:3)
根本不使用任何功能:
rev_list = original[::-1]
或者,如果出于某种原因使用len
是必需的:
rev_list = original[::-len('1')]
答案 1 :(得分:0)
它不起作用的原因是因为你正在阅读刚才改变的清单!所以你将list [0]设置为5然后将list [4]设置为list [0],你刚刚改为5:)
# contained set to
list[0] = list[4-0] = list[4] # 1 list[4] which is 5
list[1] = list[4-1] = list[3] # 2 list[3] which is 4
list[2] = list[4-2] = list[2] # 3 list[2] which is 3
list[3] = list[4-3] = list[1] # 4 list[1] which is now 4
list[4] = list[4-4] = list[0] # 5 list[4] which is now 5
我真的很喜欢Eric的方式:D