는 방법을 연결하는 두 개의 목록에서 파이썬
소개
목록 연결하는 행위를 만들기 단일 목록에서 여러 개의 작은 나열하여 데이지 체인 연결합니다.
파이썬에서 목록을 연결하는 많은 방법이 있습니다. 특히,이 문서에서,우리가 어떻게 연결하는 두 개의 목록에서 파이썬를 사용하여 플러스 운영자에 압축을 풀고,연산자,곱셈 연산자 설명서에 대한 반복 연결itertools.chain()
extend()
.
에 모든 코드를 조각 아래,우리가 사용하의 다음 목록은 다음과 같습니다:
list_a = list_b =
러자 목록 연결
가장 간단하고 간단한 방법을 연결하는 두 개의 목록에서 파이썬은 플러스(+
)운영자:
list_c = list_a + list_bprint (list_c)
압축을 풀고자 목록 연결
이 방법을 연결시킬 수 있습 여러 목록이 있습니다. 그것은 상당히 새로운 기능이며 파이썬 3.6+에서만 사용할 수 있습니다. 포장 풀기 연산자는,이름에서 알 수 있듯이,압축을 풉니는iterable
체의 요소입니다. 풀기는 단일 목록에서 과다한 인수를 생성하고자 할 때 유용합니다. 예를 들어,
def foo(a, b, c, d): return a + b + c + d# We want to use the arguments of the following list with the foo function.# However, foo doesn't take a list, it takes 4 numbers, which is why we need to# unpack the list.foo(*list_a)# This is the same as if we were to call foo(1,2,3,4)
10
간단히 말해서,우리가 사용하여 목록을 생성자()그리고 생성하는 요소의 새로운 순서대로 목록을 개봉하여 여러 목록을 한 후에 다른:
list_c = # This is the same as:# list_c = print (list_c)
곱 운전자 목록 연결
multiply(*
)연산자는 특별한 경우의 목록을 연결 in Python. 그것은 사용되는 반복하는 전체 목록 여러 번(는 이유는 그것은 로 표시된 곱셈 연산자가):
print(list_a * 2)
루 목록 연결
에서 이 방법을 우리는 것이 하나를 통해 이동하면서 목록을 추가하여 각각의 요소가 다른 목록 한다. 루프가해야 할 것이 하나의 목록과 함께 모든 원하는 요소:
for i in list_b: list_a.append(i)print (list_a)
itertools.chain()List Concatenation
이 방법은iterables
와 함께 작동합니다. 그것은 구성하고 반복기를 반환합니다 나중에 사용할 수 있는 구성된 연결 목록(으로 생각하는 화살표하는 그냥 기억하기 위해 요소에서 결과 목록):
# If we were to call itertools.chain() like soiterator = itertools.chain(, )# Basically the iterator is an arrow which can give us the next() element in a sequence, so if we call a list() constructor with said iterable, it works like this:list(iterator)
후드,무언가를 따라 이러한 라인입니다 무엇이 일어나:
# Iterator: The next element in this list is 1 , ^# Iterator: The next element in this list is 2, ^# Iterator: The next element in this list is 3 , ^# Iterator: The next element in this list is 4 , ^# So the list() call looks something like:list()# Keep in mind this is all pseudocode, Python doesn't give the developer direct control over the iterator
이 방법을 위해,당신을 가져올 필요가 없itertools
import itertoolslist_c = list(itertools.chain(list_a, list_b))print (list_c)
장()목록에 연결
이 aa 건설-그것은 기능을 확장하는 데 사용할 수 있습니다. 여기서 두 번째 목록의 요소를 추가하여 첫 번째 목록을 확장하고 있습니다.
list_a.extend(list_b)print (list_a)