所以我一直在浏览这个网站,试图解决我的问题,但我不认为有人有我的具体问题? 我要做的是遍历并创建列表的重复排列。类似于如果我想要所有可能的结果滚动一个4面骰子3次。我不知道我的代码是否真的能用于此目的,但眼前的问题是:
我有这个密码:
ops = ["add", "sub", "mul", "div"]
def opsy():
opslist=["cat", "dog", "cow"]
for w in ops:
opslist[0] = w
for x in ops:
opslist[1] = x
for y in ops:
opslist[2] = y
opsarray.append(opslist)
我得到一个错误:
IndexError: 'list assignment index out of range'
我理解应该是因为opslist
被定义为一个空列表,所以我更改了它(如上面的代码所示),我仍然得到了错误?
另外,我不认为“append
”不是我想要的,我需要能够更改一个特定的索引,而不仅仅是添加一个项。我也不想使用模块(itertools),我真的很想自己编程。
非常感谢。你知道吗
编辑:
我不知道为什么我会出错?但不管怎样,马蒂诺对opsarray = [[w, x, y] for y in ops for x in ops for w in ops]
的评论对我想做的事情起了作用。所以是的。谢谢!你知道吗
您的代码不会引发异常。但是,您确实有一个不同的问题:您将同一个列表(
opslist
)添加到opsarray
64次,同时不断更改该列表。最后,您对同一列表有64个引用:要创建新列表:
或者更好地使用^{} :
结果是:
相关问题 更多 >
编程相关推荐