이것은 Python에 대한 단축키가있는 것처럼 보입니다. 나는 효과적으로을하고, 목록에 N 번 항목을 추가하려면 :Python : N 번 목록에 항목을 추가하십시오.
l.append_multiple(x, 100)
: 그에 대한 "최적의"방법과 같이이 있어야 나에게 보일 수있을 것입니다
l = []
x = 0
for i in range(100):
l.append(x)
거기 있니?
이것은 Python에 대한 단축키가있는 것처럼 보입니다. 나는 효과적으로을하고, 목록에 N 번 항목을 추가하려면 :Python : N 번 목록에 항목을 추가하십시오.
l.append_multiple(x, 100)
: 그에 대한 "최적의"방법과 같이이 있어야 나에게 보일 수있을 것입니다
l = []
x = 0
for i in range(100):
l.append(x)
거기 있니?
이 할 수 있습니다 : 참조로 저장되며이 하위 목록처럼 (나중에 수정할 수있는 값에 대한
l = [0] * 100
# [0, 0, 0, 0, 0, ...]
l = ['foo'] * 100
# ['foo', 'foo', 'foo', 'foo', ...]
또는 dicts) : 첫 번째 방법은 사장님, 상수 값 만 좋은 생각이 왜
l = [{} for x in range(100)]
(이유 e 정수 또는 문자열은 <list>*<number>
구문을 사용할 때 얕은 사본 만 있기 때문에 [{}]*100
과 같이 입력하면 동일한 사전에 100 개의 참조가 생겨 결국 하나가 변경되면 모두 변경됩니다 . int와 문자열은 변경할 수 없으므로 문제가되지 않습니다.
기존 목록에 추가하려면 해당 목록의 extend()
메서드를 사용할 수 있습니다 (목록 생성과 함께). 위의 기술을 통해 추가 할 사항) :
a = [1,2,3]
b = [4,5,6]
a.extend(b)
# a is now [1,2,3,4,5,6]
@smihael 어, 네? http://ideone.com/SffARE – Amber
또는 두 제안을'a.extend (b * n)'형식으로 결합하십시오. 'n'은 b에서 요소를 반복 할 시간입니다 – DarkCygnus
당신은 불변의 데이터 유형에 대한 지능형리스트
l = [x for i in range(10)];
Itertools repeat with list extend.
from itertools import repeat
l = []
l.extend(repeat(x, 100))
과제에 대한 다른 경로로 이동해야했지만 이것이 결국 해결되었습니다.
my_array += ([x] * repeated_times)
내 상황에 가장 적합하기 때문에'l.extend ([x] * 100)'로 끝납니다. 앰버는 가장 포괄적 인 답변을 제공합니다. 감사! – Toji
이것을 사용하기 전에 파이썬의 참조 의미를 이해해야합니다. l에 덧붙여지는 x는 모두 같은 x이므로, 그 중 하나를 돌연변이시키는 것은 그들 모두에게 영향을 미칩니다 (모두 100 회, 100 회라고 함). –
설명 : 정수로 사용하고 있으므로 사용법이 안전합니다. – Toji