Python\의 `append()` 및 ` =` 연산자는 언제 목록과 다른 결과를 생성합니까?

Mary-Kate Olsen
풀어 주다: 2024-10-28 16:53:29
원래의
474명이 탐색했습니다.

 When Does Python's `append()` and ` =`  Operator Produce Different Results with Lists?

Python의 추가() 및 = 연산자가 목록과 다른 결과를 생성하는 이유

Python에서는 추가() 메서드와 = 연산자가 동작합니다. 목록에 적용하면 다르게 나타납니다. 둘 다 기존 목록에 요소를 추가하는 것처럼 보일 수 있지만 실제로는 기본 작업으로 인해 서로 다른 결과를 생성합니다.

append()

append() 메서드는 직접적으로 요소이든 다른 목록이든 개체를 원래 목록의 끝에 추가합니다. 이 프로세스를 통해 원본 목록에 대한 참조가 목록에 추가됩니다.

= 연산자

반면 = 연산자는 요소별 추가를 수행합니다. 두 개의 피연산자. 목록과 함께 사용하면 두 번째 피연산자의 요소를 첫 번째 피연산자의 끝에 효과적으로 연결하여 새 목록을 만듭니다.

다음 코드를 고려하세요. :

<code class="python">>>> c = [1, 2, 3]

# Appending a list to itself using append() leads to infinite recursion
c.append(c)

# Element-wise addition using += concatenates the lists
c += c</code>
로그인 후 복사

출력

첫 번째 경우 c.append(c)를 사용하여 목록 c를 자체에 추가하면 무한 재귀가 생성됩니다. 이는 c의 마지막 요소가 실제로 c 자체에 대한 참조이고 이 참조가 목록에 추가되어 무한 루프가 발생하기 때문입니다.

두 번째 경우 c = c를 사용하면 요소별로 수행됩니다. 덧셈. 이는 c의 요소가 자신에게 추가되어 새로운 목록 [1, 2, 3, 1, 2, 3]이 생성됨을 의미합니다.

대안: 확장()

원하는 동작이 한 목록의 요소를 다른 목록에 추가하는 것이라면 = 대신 확장() 메서드를 사용할 수 있습니다. 새 목록을 만들지 않고 원래 목록을 수정합니다.

<code class="python">c.extend([4, 5, 6])</code>
로그인 후 복사

결론

요약하면 Python의append() 메서드는 객체를 목록의 끝에 직접 추가합니다. 목록을 포함하는 = 연산자는 요소별 추가를 수행하고 새 목록을 생성합니다. 방법 선택은 의도한 작업과 원본 목록 수정을 원하는지 여부에 따라 다릅니다.

위 내용은 Python\의 `append()` 및 ` =` 연산자는 언제 목록과 다른 결과를 생성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿