lst=[201, 303, 210, 407, 213, 313]
lst2=[302,304,404]
value=4
for j in range(0,len(lst),-1):
if len(lst)>=value:
lst2.append(lst[j])
我正在尝试将“ lst”中的最后4个元素附加到“ lst2”中,即它的4个元素,因为这是我分配给value
的内容。但是,列表中没有任何变化吗?
答案 0 :(得分:0)
range
的语法为range(start, stop, step)
。因此,在range(0, len(lst), -1)
上进行迭代将在什么都不会进行上进行迭代,因为您无法将{em>从{1}}降到正数。
这会起作用,请注意,必须减去1才能计入0索引:
0
这里的for j in range(len(lst)-1, len(lst)-1-value, -1):
lst2.append(lst[j])
print(lst2)
[302, 304, 404, 313, 213, 407, 210]
对象有点令人费解。注意负范围和负列表索引工作正常,您可以改用range
。
使用Python,您完全不需要在这里循环范围。相反,您可以使用列表切片和reversed
来迭代值本身而不是索引:
range(-1, -value-1, -1)
当然,这里不需要手动循环,您可以通过for j in reversed(lst[-value:]):
lst2.append(j)
进行扩展:
+=
如果您还 需要从lst2 += reversed(lst[-value:])
中删除这些项目,则可以通过切片来实现:
lst
答案 1 :(得分:0)
使用列表中的访问元素,您可以切片
lst=[201, 303, 210, 407, 213, 313]
lst2=[302,304,404]
lst2.append(lst[2:])
print(lst2)
答案 2 :(得分:0)
尝试一下:
Auth::routes();
输出:
lst=[201, 303, 210, 407, 213, 313]
lst2=[302,304,404]
value=4
for i in lst[-4:]:
lst2.append(i)
lst.remove(i)