mdphd 发表于 2020-3-23 21:21:13

python如何实现n维数据的遍历处理?

举个例子,如果要处理一个数组中的每一个数据,可以用一层循环语句实现,我们姑且称这样的数组为一维的。循环次数为数组的长度a
二维数组就是在一个二维的表格(可以想象一个a*b的长方形)中的数据,可以用2层循环语句实现。循环的总次数为数组的a*b
同理,n维的数据则需要n层循环语句。
在n可变或者n很大的情况下,python中存不存在一种语句能够实现n维数据的遍历处理?

mdphd 发表于 2020-3-23 21:24:52

或者说有没有一种语句能够实现n层循环

qiuyouzhi 发表于 2020-3-23 21:27:51

mdphd 发表于 2020-3-23 21:24
或者说有没有一种语句能够实现n层循环

for 循环?
for i in range(n)

TJBEST 发表于 2020-3-23 21:41:45

递归吧,for已经无法满足了 比如 n维数据 要使用n层循环 计算机可以实现 你写的过来吗?
还是建议 采用递归方式

mdphd 发表于 2020-3-23 21:50:55

递归不是有上限吗

mdphd 发表于 2020-3-23 21:53:54

TJBEST 发表于 2020-3-23 21:41
递归吧,for已经无法满足了 比如 n维数据 要使用n层循环 计算机可以实现 你写的过来吗?
还是建议 采用递 ...

这就是我想问的
还有,递归不是有上限吗

一个账号 发表于 2020-3-23 22:11:13

mdphd 发表于 2020-3-23 21:50
递归不是有上限吗

>>> import sys
>>> sys.setrecursionlimit(10000000)

TJBEST 发表于 2020-3-23 22:18:10

mdphd 发表于 2020-3-23 21:53
这就是我想问的
还有,递归不是有上限吗

一般也不会这么多层啊,没有意义的设计。既然面型对象了,最好还是用属性之类的表示,赋予其意义
再说储存数据 一般用json xml等

bigbird0419 发表于 2020-3-24 02:55:49

我觉得Python对n维数组的支持已经很爽了,遍历起来很容易啊
>>> a=
>>> b=
>>> b
[, , , ]
>>> c=
>>> c
[[, , , ], [, , , ], [, , , ]]
>>> d=
>>> d
[[[, , , ], [, , , ], [, , , ]], [[, , , ], [, , , ], [, , , ]]]
for eachd in d:
        for eachc in eachd:
                for eachb in eachc:
                        for eacha in eachb:
                                print(eacha)

XiaoPaiShen 发表于 2020-3-24 06:46:53

使用 numpy 处理数组会好些
页: [1]
查看完整版本: python如何实现n维数据的遍历处理?