가장 간단한 해결책은 *unpacking 연산자를 사용하여 두 범위를 목록으로 압축 해제하는 것입니다 .
>>> [*range(6, 10), *range(-9, -5)]
[6, 7, 8, 9, -9, -8, -7, -6]
이것은 가장 짧은 대답 일뿐 만 아니라 단일 목록 만 구성하고 두 개 이상의 함수 호출을 포함하지 않기 때문에 가장 성능이 range좋습니다.
timeit모듈을 사용 하여이 질문의 모든 답변을 테스트하여 이것을 확인했습니다 .
답변 ID 방법 시간 결과
-------------------------------------------------- ------------------------------------------------
(문제) [x 범위 (6,10)의 x에 대한 x] + [범위 범위의 y에 대한 y (-9, -5)] 루프 당 0.843 usec
(이 답변) [* range (6, 10), * range (-9, -5)] 루프 당 0.509 usec
61348876 [범위 (x, -x)에서 y의 경우 (6,10)의 x에 대한 y] 루프 당 0.754 usec
61349149 list (range_with_negatives (6, 10)) 루프 당 0.795 usec
61348914 list (itertools.chain (range (6, 10), range (-9, -5))) 0.709 루프 당 usec
61366995 [itertools.product ((-1, 1), range (6, 10))의 부호 x, 부호 x x] 루프 당 0.899 usec
61371302 list (range (6, 10)) + list (range (-9, -5)) 루프 당 0.729 usec
61367180 list (range_with_negs (6, 10)) 루프 당 1.95 usec
(내 컴퓨터에서 Python 3.6.9를 사용하여 적시에 테스트 (평균 사양))