嗨,我正在尝试列出另一个列表的所有可能的内聚组合,所以从[0,1,2,3]我想得到[[0],[0,1],[0,1,2],[0,1,2,3],[1],[1,2],[1,2,3],[2],[2,3]]。到目前为止我得到了这个:
def expandArray(arr):
result = []
for x in range(0, len(arr)):
subArray = [arr[x]]
result.append(subArray)
for y in range(x + 1, len(arr)):
subArray.append(arr[y])
result.append(subArray)
return(result)
但是它返回:[[0,1,2,3],[0,1,2,3],[0,1,2,3],[0,1,2,3],[1,2,3],[1,2,3],[1,2,3],[2,3],[3]。你知道吗
我做错什么了?你知道吗
subArray
是在for循环中修改的列表。当你附加到它时,你不会创建一个新的列表,但是你会修改它,然后再把它放到列表中,这样最终会得到一个有多个相同列表副本的结果。比较此代码:将输出:
下面是一种使用
list slicing
获得所需输出的方法:输出:
相关问题 更多 >
编程相关推荐