问题:
考虑d维简单立方晶格。
如果晶格的宽度为L,则晶格位点的数量为L d。我想创建一个包含一般d和L的晶格位点的所有位置的列表。
例如,当L = 2且d = 2时,这将是 [(0, 0), (1, 0), (0, 1), (1, 1)]。
我的尝试:
虽然我可以对一般L执行此操作,但我无法概括维度d。
下面是我使用三个循环解决d = 3for的问题。
def Positions(L):
PositionList = []
for i in range(L):
for j in range(L):
for k in range(L):
PositionList.append([k, j, i])
return PositionList
很容易看出我将如何更改它以增加或减少维度d ,因为我可以简单地添加或删除循环,但显然对于大dfor来说这是非常乏味的。
我考虑过使用递归for循环,所以我只会对for任何d使用一个循环,但我不知道如何在保留写出位置所需的索引的同时执行此操作。
综上所述:
是否可以使用可变数量的for循环,每个循环都有不同的索引来解决此问题?
或者有没有更好的不使用for循环的解决方案?
慕桂英3389331
qq_花开花谢_0
素胚勾勒不出你
相关分类