python – 切片多维列表
发布时间:2020-12-20 13:15:15 所属栏目:Python 来源:网络整理
导读:我有一个可变长度多维,如下所示: listD = [[[[53,54],[129,130]]],[[[51,51],[132,132]]],[[[39,39],[144,144]],[[53,[146,146]],[[54,[130,[[[54,53],129]]],[[[52,52],132]]] ] 我需要在每个最里面的列表中挑选出第一个元素.输出应如下所示: outlist=[[[
我有一个可变长度多维,如下所示:
listD = [[[[53,54],[129,130]]],[[[51,51],[132,132]]],[[[39,39],[144,144]],[[53,[146,146]],[[54,[130,[[[54,53],129]]],[[[52,52],132]]] ] 我需要在每个最里面的列表中挑选出第一个元素.输出应如下所示: outlist=[[[[53,54]]],51]]],39]],53]]],52]]] ] 我试图切片使用0和:s,我没有得到正确的列表.如何在python中执行此操作? 我在列表中出错了.我已经编辑了这份清单.对困惑感到抱歉. 解决方法
尝试使用嵌套列表理解:
[[[x[0]] for x in y] for y in listD] 步骤: 查看listD中的每个嵌套行,看看它与outlist的对应关系.您可以看到每个1深列表的第一个元素都包含在outlist中 >>> [x[0] for x in listD[0]] [[53,54]] >>> [x[0] for x in listD[1]] [[51,51]] >>> [x[0] for x in listD[2]] [[39,[53,54]] 但是在outlist中,这些列表然后嵌套在另一个1元素列表中,因此将这些列表中的每一个包装到它自己的列表中,例如,下一个元素将是: >>> [[x[0] for x in listD[3]]] [[[39,[54,54]]] 然后为listD的每个索引扩展它: [[[x[0]] for x in listD[i]] for i in range(len(listD))] 然后通过将listD [i]替换为listD的元素来进一步简化: [[[x[0]] for x in y] for y in listD] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |