【发布时间】:2020-02-14 09:22:33
【问题描述】:
首先我想说我已经阅读了这个帖子:
Function with varying number of For Loops (python)
虽然它看起来确实与我想知道的相似,但我(根本)不够精通递归以使其工作。
如果我有以下sn-p:
I = ["i" + str(i+1) for i in range(3)]
J = ["j" + str(i+1) for i in range(4)]
K = ["k" + str(i+1) for i in range(2)]
然后我可以做一个这样的函数:
def f(*Sets):
size = len(Sets)
if size == 1:
for i in Sets[0]:
print(i)
elif size == 2:
for i in Sets[0]:
for j in Sets[1]:
print(i,j)
elif size == 3:
for i in Sets[0]:
for j in Sets[1]:
for k in Sets[2]:
print(i,j,k)
当执行时,它会产生类似的东西:
>>f(I)
i1
i2
i3
>>f(I,J)
i1,j1
i1,j2
...
i3,j4
>>f(I,J,K)
i1,j1,k1
i1,j1,k2
...
i3,j4,k2
print 语句只是一个示例。我想在检查循环变量或字典的同时实际访问熊猫数据框中的元素,因此它将包含一些命令,如print(i,j,k, ":", dictionary[i,j,k])。我需要访问循环中的每个变量,这就是我的意思。
在我看来,这可以通过某种递归来广泛减少。因为例如,如果我需要四个列表,我必须添加另一个 elif。但是我没有递归式的思维,也看不出怎么解决。
或者可能根本无法完成。什么都不知道了:P
【问题讨论】:
标签: python python-3.x