Python 附加一个以上的元素

Python append more than one element

我有一个用于图像分类的 6500 张图像(数组)的列表 (T),我想看看增加数据如何影响准确性。

所以,从 n=2000 张图像开始,我想有一个循环,在每次迭代时添加 500(n+=500) 张图像,直到达到 6500,因此比较 2000、2500、3000、 ... 6500。我通过包含 20 个元素的列表简化了下面的问题。

lst = [1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0]

我的第二个列表 (slist) 包含第一个列表 (lst) 的前 9 个元素。

我试图在每次迭代时将 2 个值添加到 slist,从 lst[9:] 开始。我知道与其使用 append,不如使用 extend 一次添加多个值。但是,我找不到办法。

在下面的代码中,在每个循环中将一个元素添加到 slist(来自 lst)。

lst = [1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0]
slist = lst[:9]
for i in lst[9:]:
    slist.append(i)

如何在每个循环中同时添加 2 或 3 个元素?示例输出为:

[1,2,3,4,5,6,7,8,9,0,1]

[1,2,3,4,5,6,7,8,9,0,1,2,3]

[1,2,3,4,5,6,7,8,9,0,1,2,3,4,5]

您可以尝试使用 extend:

l = [1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0]
slist = l[:9]
for i in l[9:][::2]:
    if i == l[9]:
        slist.extend(l[9+i: 9+i+1])
    else:
        slist.extend(l[9+i-1: 9+i+1])
    print(slist)

输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0]
lst=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
  16,17,18,19,20]

iter = 9
while True:
    print(lst[:iter])
    iter+=2
    if len(lst) <= iter:
        print(lst[:iter])
        break

这段代码可以完成工作

lst=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
  16,17,18,19,21]

slist= lst[:9]
s,f=0,2
while True:
    slist.extend(lst[9:][s:f])
    print(slist)
    s+=2
    f+=2
    if len(slist) >= len(lst):
        break

它打印出来:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]