问题描述
我有一个包含 6500 个图像(数组)的列表(T),用于图像分类,我想看看增加数据如何影响准确性。
所以,从 n=2000 张图像开始,我想有一个循环,在每次迭代时添加 500(n+=500) 张图像,直到达到 6500,因此比较 2000、2500、3000、.. . 6500. 我通过一个包含 20 个元素的列表简化了下面的问题。
lst = [1,2,3,4,5,6,7,8,9,1,0]
我的第二个列表 (slist
) 包含第一个列表 (lst
) 的前 9 个元素。
我试图在每次迭代时向 slist
添加 2 个值,从 lst[9:]
开始。我知道应该使用 append
一次添加多个值而不是使用 extend
。但是,我找不到办法做到这一点。
在下面的代码中,每个循环都会向 slist
(来自 lst
)添加一个元素。
lst = [1,0]
slist = lst[:9]
for i in lst[9:]:
slist.append(i)
如何在每个循环中同时添加 2 个或 3 个元素?一个示例输出是:
[1,1]
[1,3]
[1,5]
解决方法
您可以尝试使用 extend
:
l = [1,2,3,4,5,6,7,8,9,1,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,0]
[1,2]
[1,4]
[1,6]
[1,8]
[1,0]
,
lst=[1,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,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,11]
[1,13]
[1,15]
[1,17]
[1,19]
[1,20,21]