追加元素以列出并从另一个元素中删除

时间:2018-10-28 22:35:34

标签: python list for-loop

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的内容。但是,列表中没有任何变化吗?

3 个答案:

答案 0 :(得分:0)

range的语法为range(start, stop, step)。因此,在range(0, len(lst), -1)上进行迭代将在什么都不会进行上进行迭代,因为您无法将{em>从

这会起作用,请注意,必须减去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)