2017-11-05 4 views
-3

주어진 상한 번호보다 큰 숫자를 포함하지 않는 주어진리스트의 서브리스트의 총 수를 찾고 싶습니다. 10이라고 말하십시오. 내리스트는 : x=[2, 0, 11, 3, 0]이고 하위리스트 요소에 대한 상한값입니다. 내가 문제Itertools 순열

from itertools import permutations 
x=[2, 0, 11, 3, 0] 
y=[i for i in permutations(x) if max(i)<=10 ] 

에 직면하고있다 그러나 솔루션은 작동하지 않습니다 이것에 대한 itertools를 사용할 때 10 다음 내 하위 목록이 [[2],[2,0],[3],[3,0]] 부탁해 될 수있다.

+0

당신은 max''호출 할 필요가'최대 (I)' – Daniel

+0

@Daniel 덕분에, 그것을 고정, 순열하지만 튜플을 반환합니다 다시 i가 작동하지 않습니다 무엇을 원하는! – Demonking28

+0

당신은 모든 순열이 그것에서 11을 가질 것이라는 것을 깨닫습니다. 맞습니까? – 0TTT0

답변

1

목록을 먼저 필터링하고 나중에 permute하십시오.

def limited_perm(a_list, max_value): 
    limited_list = [x for x in a_list if x <= max_value] 
    return itertools.permutations(limited_list)