2012-07-29 2 views
2

내가봤을 때 내가 (파이썬에)에 docutil 소스 코드를 찾고 있었어요이 (편집 됨) :파이썬 사전 "복사 값"

내가 이야기하고있는 라인이 하나
def __init__(self, **attributes): 
    for att, value in attributes.items(): 
     att = att.lower() 
     if att in self.list_attributes: 
      # mutable list; make a copy for this node 
      self.attributes[att] = value[:] 
     else: 
      self.attributes[att] = value 

:

  self.attributes[att] = value[:] 

"[:]"은 정확히 무엇을합니까? 위의 코멘트는 어떤 종류의 사본을 암시하지만 내 Google 검색은 성공하지 못했으며 언어 기능이나 트릭/일종의 지름길 인 경우 알 수 없습니다.

답변

8

그것은 표기법은 "슬라이스"라고

목록의 사본을 (이 사전 아니다)합니다. 코드 추출에서와 같이 아무 것도 지정하지 않으면 복사를 시작하고 끝낼 위치를 지정할 수 있습니다. 첫 번째 요소에서 마지막 요소로 복사합니다.

예를 들어 mylist[1:]은 첫 번째 요소를 생략하여 전체 목록을 복사합니다.

종합적인 설명은 here입니다.

+0

감사합니다. 내 질문에 완벽하게 답변 해줍니다. 사이트가 나를 허용하자마자 대답으로 표시 할 것입니다 (8 분 이내) –

+0

딥 복사가 아니라는 점에 유의하십시오. 단순히 각 개체에 대한 참조를 복사하여 새 목록에 저장합니다. 이 방법이 모든 것을 선택하는 복사 방법이되어서는 안되지만, 반복을 망치지 않고 동시에 반복하고 목록을 수정하려면 유용합니다. – CosmicComputer