tracyyx
YeYe??
采纳率100%
2021-01-28 16:52

Python for循环结果转换成一列

已采纳

如图,for循环后的结果好像不在同一列里,要怎么把它变成[1,2,3,4,5……]这样一列的形式呀?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

9条回答

  • weixin_43162240 Bryce__LY 3月前
    ret = []
    for i in range(cols): 
         lr =LinearRegression() 
         f=lr.fit(x[i*ys:i*ys+xs],y[i*ys:i*ys+xs]) 
         p=lr.predict(test[xs+i*ys:(xs+ys)+i*ys]) 
         pp= [j for item in p for j in item] 
         ret.extend(pp)
         
    print(ret)

    这样行不行 

    点赞 1 评论 复制链接分享
  • m0_47670683 皛心 3月前

    这个实在是太简单,不过没看到你的代码,也说不好。

    假设你的代码函数是return 运算结果,而不是直接print运算结果,那么可以将运算结果append到一个列表中,再用列表推导式展开即可。

    def a1():
        return [1,2,3]
    
    def a2():
        return [4,5,6]
    
    result = []
    result.append(a1())
    result.append(a2())
    print(result)  # [[1, 2, 3], [4, 5, 6]]
    re = [z for x in result for z in x]
    print(re)  # [1, 2, 3, 4, 5, 6]
    点赞 1 评论 复制链接分享
  • funny123 coagenth 3月前

    对于此类列表中的列表的折出,有三种常见方法:

    方法1:

    l=[[1,2,3],[4,5,6]]

    ls=[]

    for x in l:

        ls.extend(x)

    print(ls)

    方法二:

    l1 = [[1, 2, 3], [4, 5, 6]]

    ls1=[]

    for x in l:

        ls1+=x

    print(ls1)

    方法三:

    from itertools import chain

    print([*chain.from_iterable(l)])

    点赞 评论 复制链接分享
  • tracyyx YeYe?? 3月前

    是我把print的缩进放在了for里,应该在for循环体外面的~

    点赞 评论 复制链接分享
  • tracyyx YeYe?? 3月前

    @CreateBig 赞!!!就是这个意思!!!哈哈哈哈哈哈 太棒啦!!!!谢谢你!!!

     

    点赞 评论 复制链接分享
  • tracyyx YeYe?? 3月前

    其实一直苦恼的问题是,不用列表推导式的情况下,为什么for循环的结果都不能再同一个[]里面~哎~

    点赞 评论 复制链接分享
  • tracyyx YeYe?? 3月前

    你好,你的代码里知道a1= [1, 2,3], 但是for循环出来的结果我不知道这最后一行怎么打印出来,比如图片里[1.47,5.21,10.66]这一行,我怎么弄都打印不出来。我的部分代码是这样的: for i in range(cols): lr =LinearRegression() f=lr.fit(x[i*ys:i*ys+xs],y[i*ys:i*ys+xs]) p=lr.predict(test[xs+i*ys:(xs+ys)+i*ys]) pp= [j for item in p for j in item] print(pp)

    点赞 评论 复制链接分享
  • tracyyx YeYe?? 3月前

    不用列表推导式[……for……]要怎么把这些数据放到同一列呀?

    点赞 评论 复制链接分享
  • tracyyx YeYe?? 3月前

    就是这么多列数据都没在同一个[]里~

    点赞 评论 复制链接分享