2016-11-06 2 views
0
name = list('ayushgupta') 
>>> name 
['a', 'y', 'u', 's', 'h', 'g', 'u', 'p', 't', 'a'] 
>>> name[5:5] = list('THE') 
>>> name 
['a', 'y', 'u', 's', 'h', 'T', 'H', 'E', 'g', 'u', 'p', 't', 'a'] 
>>> name[5:5] = [] 
>>> name 
['a', 'y', 'u', 's', 'h', 'T', 'H', 'E', 'g', 'u', 'p', 't', 'a'] 

이름 [5 : 5]을 사용하여 'T', 'H', 'E'를 이름에서 삭제하려고하면 작동하지 않습니다. 나는 이름 [5 : 8]을 사용하여이를 삭제할 수 있음을 압니다. 아무도 이것이 왜 그렇게 설명 할 수 있습니까?python- 목록에서 요소를 삭제하는 중

답변

0

당신은 할 필요가 :

>>> name[5:8] = [] 
>>> name 
['a', 'y', 'u', 's', 'h', 'g', 'u', 'p', 't', 'a'] 

당신이 한, name[5:5]=list('THE')THE 목록의 5 번째 인덱스 5 인덱스에서 목록에 삽입되었다. name[5:5] = []을 수행 할 때 아무것도 삭제하지 않고 대신 빈 list을 삽입하려고 시도하므로 변경되지 않습니다.

>>> del name[5:8] 
>>> name 
['a', 'y', 'u', 's', 'h', 'g', 'u', 'p', 't', 'a'] 
+0

"누구나 설명 할 수 있을까요? *". 잘? –

+0

@AndrasDeak 이미 업데이트 중이므로 확인 수정 :) –

+3

좋습니다. 첫 번째 시도에 대해 완전한 대답을 줄 시간을 가져야합니다. 그것은 당신에게 몇 가지 downvotes을 절약 할 수 있습니다. 나는 당신에게 FGITW 행동을 많이 보여 주었기 때문에 이것을 말하고있는 것뿐입니다. 나는 이것이 도움이되는 사람이나 사이트에 도움이되지 않는다고 생각합니다. 대답을 주면 좋은 결과를 얻으십시오. 장기적으로 그와 같은 담당자를 추가로 확보 할 수도 있습니다. –

0

참조 :

name[5:5] 
5에서 8 인덱스 목록에서 항목을 업데이트하는 경우, 당신은 같은 목록 콘텐츠를 삭제 del을 사용할 수 있습니다, name[5:8] = []

을 할 필요가 OR

의미 : 색인에서 요소 5 (포함) ~ 5 (독점)

그래서 당신은 요소 name[4] (다소 복잡한 방식으로) 선택

name[4:5] 

로 사용 무언가가있다.

1

목록의 조각에 할당하여 목록의 내용과 길이를 모두 변경할 수 있습니다. 그러나 슬라이스는 name[5:5]입니다. 슬라이스에는 끝 인덱스이 포함되지 않습니다. 따라서 슬라이스는 name[5]에서 시작하여 계속되지만 name[5]은 포함되지 않습니다. 즉, 슬라이스가 비어 있습니다.입니다.

즉, 이미 비어있는 목록의 일부를 삭제하려고합니다. 실제 슬라이스 (예 : name[5:8])를 시도하면 더 성공적입니다. 항목 하나만 삭제하려면 name[5:6]을 시도하십시오. 슬라이스 name[a:b]의 길이는 b-a (ba 이상인 경우)이며, 이는 쉽게 기억할 수 있습니다.

관련 문제