当您不知道序列长度时,在Python中进行多次拆箱分配

发布于 2021-01-29 18:23:14

多个拆箱作业的教科书示例如下:

import numpy as NP
M = NP.arange(5)
a, b, c, d, e = M
# so of course, a = 0, b = 1, etc.

M = NP.arange(20).reshape(5, 4)     # numpy 5x4 array
a, b, c, d, e = M
# here, a = M[0,:], b = M[1,:], etc. (ie, a single row of M is assigned each to a through e)

(我的问题不是numpy特定的。的确,我更喜欢纯Python解决方案。)

对于我现在正在查看的代码段,在这种简单的场景中我看到了两个复杂的问题:

  • 我通常不知道M的形状;和

  • 我想解压一定数量的项目(肯定少于所有项目),我想把其余为 单一 容器

回到上面的5x4数组,我非常想做的是分别将M的前三行分别分配给a,b和c(与上面完全一样), 其余的行
(我不知道如何单个容器中会有很多,只有一些正整数)all_the_rest = []

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    Python 3.x可以轻松做到这一点:

    a, b, *c = someseq
    

    Python 2.x需要做更多的工作:

    (a, b), c = someseq[:2], someseq[2:]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看