2013-02-26 4 views
1

임의로 생성 된 이진 값의 점진적인 수를 포함하는 목록을 생성하려고합니다.지정된 길이의 중첩 목록 생성

파이썬이 임의의 값을 지정된 길이에 도달 할 때까지 목록에 추가하도록 조건을 어떻게 추가합니까? 이 경우 각 새 목록의 길이는 점차 더 큰 홀수이어야합니다.

from random import randint 

shape = [] 
odds = [x for x in range(100) if x % 2 == 1] 

while len(shape) < 300: 
    for x in odds: 
     randy = [randint(0,1)] * x ?? # need to run this code x amount of times 
     shape.append(randy)   # so that each len(randy) = x 

* I +가 카운트 = 1을 사용하는 것을 선호하지

원하는 출력 :

형상 [0], [0,1,0], [1,1,0,1,0], [1,0,0,0,1,1,0] ... 등]

[someFunc()] * someNum

randy = [randint(0, 1) for i in range(x)] 

문제는, 파이썬은 먼저 내부 표현을 평가하는 someFunc()하고 외부 표현을 실행하기 전에 몇 가지 숫자로 해결합니다

+1

'odds = [x % 2 == 1이면 범위 (100)의 x에 대해 x를''odds = [x의 범위 (1, 100, 2)]'로 변경할 수 있습니다. 그것은 1에서 100 사이의 홀수의 범위를 사용합니다 (2는 '단계'또는 간격 임). –

+0

+1 좋은 지적. 나는 그것을 사용할 것이다. –

답변

5

당신은 발전기 표현을지능형리스트를 원한다.

+0

잘 했어 .. 사실 이건 사실 술어로 목록을 이해하는거야? –

관련 문제