【发布时间】:2019-04-15 00:20:49
【问题描述】:
我正在尝试使用递归函数来简化“for-loops”下方的任何数量的循环,我可能必须根据要求运行程序。我可以在函数中不使用 i, j, k, l.... 来定义递归函数,但我不知道或者我很难使用 i,j k.. 来定义迭代函数。 . 如果有人可以帮助我的想象力,我会很高兴。
adjcent_spin_product_matrix = []
z_partial = 0
spin = [-1, 1]
for i in spin:
for j in spin:
for k in spin:
for l in spin:
for m in spin:
for o in spin:
for p in spin:
adjcent_spin_product_matrix = adjcent_spin_product_matrix + [i*j+ j*k+ k*l+ l*n+ m*o+ o*p]
【问题讨论】:
-
我真的不明白这个。一方面,
spin是一个只有 2 个元素的列表,因此引用spin[3]等将使您的脚本崩溃并出现错误。尽管所有这些循环都定义了循环变量i到p,但您只使用过i、j和k。如果您无法提供工作版本,或者我们无法理解您正在尝试做什么,那么没有人可以帮助您简化此代码。 -
但现在这更没有意义了。为什么要多次迭代相同的值?
-
我要解决的问题要求得到一个相邻自旋积的矩阵,最终函数需要使用 i, j, k... 来描述矩阵。因此,对于每个自旋对[-1, 1],都有一个 for 循环,for 循环的数量取决于格点的数量。
-
它只是旋转,而不是旋转 [3] 等。我重新编辑了代码。基本上,我想将所有 for 循环压缩为一个递归函数,并且我还想使用每个 for 循环中的 i、j、k .... 来编写最终函数。所以,我想让你明白,i,j,k,l……在代码中起作用。
-
正如其他人所说,您的问题不是有史以来最清楚的......我已经发布了一个答案,我相信它的当前版本是重点,但不是 100%(也不是 95% ;-) 确保这正是您所要求的。你能告诉我,它可以吗,还是我最好把它删除?谢谢
标签: python list function loops iterator