加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读