我试图按如下所示循环添加和扩展列表的项:
decorator
以上代码的结果如下:
y_predicts=[]
y_trues=[]
for train,test in cv.split(X,y):
predict = classifier.fit(X.iloc[train],y.iloc[train]).predict(X.iloc[test])
tmp_l=predict.tolist()
y_predicts.append(tmp_l)
y_trues.append(np.array(y.iloc[test]))
但是,我想要的输出应该是这样的:
print(y_predicts):
[[1, 1, 0, 0, 0], [1, 0, 0, 1, 0]]
答案 0 :(得分:1)
您可以使用extend()
代替append()
,它将添加传入列表中的元素,而不是列表本身。
b = []
a = [1, 2, 3, 4]
c = [6,7, 8]
b.extend(a)
b.extend(c)
print(b)
# > [1, 2, 3, 4, 6, 7, 8]
答案 1 :(得分:1)
在带有+
运算符的python two sequence types can be concatenated中。这也可以通过+=
运算符
代替
y_predicts.append(tmp_l)
您应该使用
y_predicts += tmp_l
在您的循环中。
将所有项目从一个列表添加到另一个列表的另一种方法是列表的extend
method。与append
方法将给定项目整体添加到列表相反,extend
将其所有项目添加到列表中:
y_predicts.extend(tmp_l)
答案 2 :(得分:0)
将两个列表项组合为一个列表项的Python方式是使用“ extend”关键字而不是append。
y_predicts=[]
y_trues=[]
for train,test in cv.split(X,y):
predict = classifier.fit(X.iloc[train],y.iloc[train]).predict(X.iloc[test])
tmp_l=predict.tolist()
y_predicts.extend(tmp_l)
y_trues.append(np.array(y.iloc[test]))