임의의 (그러나 균일 한) 숫자 목록이 있습니다. (그것들은 모서리가 음모를 꾸미고 싶은 n-space에서 bin의 경계 좌표이지만 중요하지는 않습니다.) 모든 가능한 조합 목록을 생성하고 싶습니다. 그래서 [[1,2], [3,4], [5,6]]는 [[1,3,5], [1,3,6], [1,4,5], [1, 4,6], [2,3,5] ...].isinstance가없는 목록의 목록에있는 파이썬 재귀 (다른)
누구든지이 코드를 개선 할 수 있습니까? isinstance() 호출이 마음에 들지 않지만 첫 번째 인수에서 요소를 추가하는 더 많은 파이썬 방법을 알아낼 수는 없습니다. 첫 번째 인수 (pos)는 목록이 아닌 숫자 목록 일 때입니다. 목록.
def recurse(pos, vals):
out = []
for p in pos:
pl = p if isinstance(p,list) else [p]
for x in vals[0]:
out.append(pl + [x])
if vals[1:]:
return recurse(out, vals[1:])
else:
return out
a = [[1,2,3],[4,5,6],[7,8,9],[11,12,13]]
b = recurse(a[0], a[1:])
감사합니다. 귀하의 예제에서