该代码应该颠倒number
中的前my_list
个项目,同时使列表的其余部分保持其原始顺序。
list_copy = []
i = 0
j = number - 1
while i < number or j >= 0:
list_copy[i] = my_list[j]
i += 1
j -= 1
for i in range(number,length(my_list)):
list_copy[i] = my_list[i]
我用笔和纸来运行迭代,无法弄清为什么我得到“列表分配索引超出范围”。我想念什么?
答案 0 :(得分:1)
list_copy = my_list[0:NUMBER-1]
-将my_list中的前NUMBER个元素复制到list_copy
my_list = my_list[NUMBER-1:]
-从my_list中删除前NUMBER个元素
更新,不切片:
list_copy = []
j = number - 1
while j >= 0:
list_copy.append(my_list[j])
del my_list[j] # if you need remove elements from original list
j -= 1
您确实有“索引超出范围”的信息,因为Python解释器试图从空列表中获取list_copy [i]。只需使用list_copy.append()填充空白列表即可。