gpt4 book ai didi

python - 如何确定列表和数组混合的维度?

转载 作者:行者123 更新时间:2023-12-01 03:43:43 24 4
gpt4 key购买 nike

考虑一个数组列表的对象:

a=[数组([1,2,3]),数组(2,5,10,20)]

以它自己有趣的方式,这个东西有两个维度。列表本身是一维的,并且它包含一维的对象。有没有一种简单的方法可以区分上面的 a 和像 b=[1,3,6,9,11] 这样的列表(它只是一维)和 c=1,这是一个 0D 标量?我想要一个函数 dimens() ,使得 dimens(a) 返回 2dimens(b) 返回 1,并且 dimens(c) 返回 0

我通过测试列表中第一个元素的形状来做到这一点,但我觉得可能有更干净的方法。

最佳答案

def dimens(l):
try:
size = len(l)
except TypeError: # not an iterable
return 0
else:
if size: # non-empty iterable
return 1 + max(map(dimens, l))
else: # empty iterable
return 1

print(dimens([[1,2,3],[2,5,10,[1,2]]]))
print(dimens(np.zeros([6,5,4,3,2,1])))

输出

3
6

关于python - 如何确定列表和数组混合的维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39255523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com