繁体   English   中英

如何将2个列表配对为1个列表

[英]How to pair 2 list into 1 list

我有这样的代码:

def datauji(self):
    uji = []
    for x in self.fiturs:
        a = [x[0],x[-5:]] #I think the problem in this line
        uji.append(a)
    return uji

with open('DataUjiBaru.csv','wb') as dub:
        testing = csv.writer(dub)
        datatest = d.datauji()
        datatest.pop(0)
        for x in datatest:
            testing.writerow(x)

我想将self.fiturs中的值配对,在self.fiturs中:

F37,0,1,0,1,1,1,0,1,0,2,1,0,0,0,1
F10,8,4,3,3,3,6,8,5,8,4,8,4,5,6,4
F8,1,0,2,0,0,0,2,0,0,0,0,0,2,0,0

所以我想将index [0]和index [-5:]配对,并将其写入csv,并在csv上输出如下:

F37,"['1', '0', '0', '0', '1']"
F10,"['8', '4', '5', '6', '4']"
F8,"['0', '0', '2', '0', '0']"

我对csv的期望是这样的:

F37,1,0,0,0,1
F10,8,4,5,6,4
F8,0,0,2,0,0

我该如何解决?

您的代码问题是正确的,可在以下行找到它:

a = [x[0],x[-5:]]

这将创建如下所示的嵌套项目:

['F37', ['1', '0', '0', '0', '1']]

解决此问题的方法有两种:

选项1-使用splat*运算符:

a = [x[0],*x[-5:]]

选项2-将清单的两个部分串联起来:

a = x[:1] + x[-5:]

这两个都将删除列表的嵌套,而是为您提供如下所示的行:

['F37', '1', '0', '0', '0', '1']

然后可以将其写入输出文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM