为了账号安全,请及时绑定邮箱和手机立即绑定

仅将列表的值添加到循环中的另一个列表

仅将列表的值添加到循环中的另一个列表

jeck猫 2021-12-08 16:12:23
我正在尝试在循环中添加和扩展列表的项目,如下所示: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]]但是,我想要的输出应该是这样的:print(y_predicts):    [1, 1, 0, 0, 0, 1, 0, 0, 1, 0]
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

在 python 中,两个序列类型可以用一个+运算符连接。这也可以与+=操作员就地发生

代替

y_predicts.append(tmp_l)

你应该使用

y_predicts += tmp_l

在你的循环中。

将一个列表中的所有项目添加到另一个列表的另一种extend方法是 list方法。与append将给定项目作为一个整体extend添加到列表中的方法相反,将其所有项目附加到列表中:

y_predicts.extend(tmp_l)


查看完整回答
反对 回复 2021-12-08
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

您可以使用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]


查看完整回答
反对 回复 2021-12-08
?
绝地无双

TA贡献1946条经验 获得超4个赞

将两个列表项组合在一起作为单个列表项的 Pythonic 方法是使用“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]))


查看完整回答
反对 回复 2021-12-08
  • 3 回答
  • 0 关注
  • 262 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信