[PYTHON] 파이썬에서리스트 삽입하기 [duplicate]
PYTHON파이썬에서리스트 삽입하기 [duplicate]
두 가지 목록이 있습니다. [a, b, c] [d, e, f] 내가 원하는: [a, d, b, e, c, f]
파이썬에서이 작업을 수행하는 간단한 방법은 무엇입니까?
해결법
-
==============================
1.하나의 옵션은 chain.from_iterable ()과 zip ()의 조합을 사용하는 것입니다.
하나의 옵션은 chain.from_iterable ()과 zip ()의 조합을 사용하는 것입니다.
# Python 3: from itertools import chain list(chain.from_iterable(zip(list_a, list_b))) # Python 2: from itertools import chain, izip list(chain.from_iterable(izip(list_a, list_b)))
편집 : 의견에서 sr2222에 의해 지적한대로이 작동하지 않습니다. 리스트의 길이가 다른 경우. 이 경우에 따라 원하는 의미론, (훨씬 더 일반적인) roundrobin ()을 사용하는 것이 좋습니다. 레시피의 기능 섹션 itertools 문서 :
def roundrobin(*iterables): "roundrobin('ABC', 'D', 'EF') --> A D E B F C" # Recipe credited to George Sakkis pending = len(iterables) nexts = cycle(iter(it).next for it in iterables) while pending: try: for next in nexts: yield next() except StopIteration: pending -= 1 nexts = cycle(islice(nexts, pending))
-
==============================
2.다음은 목록 이해력을 사용하는 매우 간단한 방법입니다.
다음은 목록 이해력을 사용하는 매우 간단한 방법입니다.
>>> lists = [['a', 'b', 'c'], ['d', 'e', 'f']] >>> [x for t in zip(*lists) for x in t] ['a', 'd', 'b', 'e', 'c', 'f']
또는 목록을 별도의 변수로 사용했다면 (다른 답변과 마찬가지로) :
[x for t in zip(list_a, list_b) for x in t]
-
==============================
3.이것은 파이썬 2.x에서만 작동하지만 길이가 다른 목록에서도 작동합니다 :
이것은 파이썬 2.x에서만 작동하지만 길이가 다른 목록에서도 작동합니다 :
[y for x in map(None,lis_a,lis_b) for y in x]
-
==============================
4.내장 함수를 사용하여 간단한 작업을 수행 할 수 있습니다.
내장 함수를 사용하여 간단한 작업을 수행 할 수 있습니다.
sum(zip(list_a, list_b),())
from https://stackoverflow.com/questions/11125212/interleaving-lists-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] JDBC로 술어 푸시 다운 작업을 유발합니까? (0) | 2018.10.08 |
---|---|
[PYTHON] 클래스 변수는 파이썬의 모든 인스턴스에서 공유됩니까? [복제] (0) | 2018.10.08 |
[PYTHON] 파이썬, TypeError : unshashable 타입 : 'list' (0) | 2018.10.08 |
[PYTHON] 내 전역 변수에 파이썬으로 할당 할 수없는 이유는 무엇입니까? (0) | 2018.10.08 |
[PYTHON] 람다 식을 사용하여 pyqt의 슬롯 연결 (0) | 2018.10.08 |