[python] Python : N 번 목록에 항목 추가

이것은 파이썬이 지름길을 가지고있는 것처럼 보입니다. 목록에 항목을 N 번 추가하고 효과적으로 다음을 수행합니다.

l = []
x = 0
for i in range(100):
    l.append(x)

이를 위해 다음과 같은 “최적화 된”방법이 있어야한다고 생각합니다.

l.append_multiple(x, 100)

거기 있어요?



답변

변경 불가능한 데이터 유형의 경우 :

l = [0] * 100
# [0, 0, 0, 0, 0, ...]

l = ['foo'] * 100
# ['foo', 'foo', 'foo', 'foo', ...]

참조로 저장되고 나중에 수정할 수있는 값의 경우 (예 : 하위 목록 또는 사전) :

l = [{} for x in range(100)]

단지 얕은 복사가 사용 않을 때이기 때문에 (첫 번째 방법은의 int 또는 문자열처럼 만 상수 값에 대한 좋은 생각입니다 이유이며, <list>*<number>구문, 당신은 같은 것을했다 따라서 경우 [{}]*100, 100 참조로 끝날 것 동일한 사전에-그래서 그들 중 하나를 변경하면 모두 변경됩니다. 정수와 문자열은 변경 불가능하므로 문제가되지 않습니다.)

기존 목록에 추가하려는 경우 extend()해당 목록 의 방법을 사용할 수 있습니다 (위의 기술을 통해 추가 할 항목 목록 생성과 함께).

a = [1,2,3]
b = [4,5,6]
a.extend(b)
# a is now [1,2,3,4,5,6]


답변

목록 이해력을 끝에 추가하려면 extend를 사용하십시오.

l.extend([x for i in range(100)])

자세한 내용은 Python 문서 를 참조하세요.


답변

나는 과제를 위해 다른 길을 가야했지만 이것이 내가 끝내게 된 것입니다.

my_array += ([x] * repeated_times)


답변

Itertools는 목록 확장과 결합하여 반복됩니다.

from itertools import repeat
l = []
l.extend(repeat(x, 100))


답변

목록 이해력으로 할 수 있습니다.

l = [x for i in range(10)];


답변

l = []
x = 0
l.extend([x]*100)


답변