python - 如何将 2 个列表配对为 1 个列表
问题描述
我有这样的代码:
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']
然后您可以将其写入输出文件。
推荐阅读
- python - 与 discord.embed 相关的错误
- node.js - mongoose 删除之前上传的文件
- javascript - 使用 discord.js 从不同服务器向多个频道 ID 发送消息
- reactjs - 用户获取时如何保护某些路由
- javascript - 如何使用按钮切换 AM/PM 和 MilitaryTime
- c++ - std::find,std::count_if,具有唯一 ptr 向量
- laravel - Laravel 将模型保存到 sqlserver
- node.js - 即使服务器关闭,节点 js 仍保持连接
- python - make 在 make 调用期间找不到 OpenCV 库
- python - Tensorflow特征值分解极慢