2013-03-30 4 views

답변

11
number = 1 
elements = 1000 

thelist = [number] * elements 

>>> [1] * 10 
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 

주의 : 같은 가변 객체 (목록 특히 목록)을 복제하려고하지 마십시오, 또는 이런 일이됩니다

In [23]: a = [[0]] * 10 

In [24]: a 
Out[24]: [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]] 

In [25]: a[0][0] = 1 

In [26]: a 
Out[26]: [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]] 

numpy를 사용하는 경우 다차원 목록의 경우 numpy.repeat이 최선의 방법입니다. 별도의 축을 통해 모든 모양의 배열을 반복 할 수 있습니다.

+2

질문은'numpy' 태그가 붙기 때문에'numpy.repeat (1, 10)'을 언급할까요? ('n'이 실제로 커질 때까지 목록을 곱하는 것보다 속도는 느리지 만) – DSM

+2

변경 가능한 유형의 예기치 않은 결과가있을 수 있습니다 (예 : Python 변수의 작동 방식에 따라) 동일한 객체에 대한 참조. –

+0

numpy 태그를 존중하기 위해'a = np.empty ((elements,), dtype = np.int); a.fill (number)'는 '요소'의 값이 높으면'[number] * elements '보다 훨씬 빠릅니다. 그러나 반환은 진짜 명부가 아니다. – Jaime

관련 문제