이 질문에 대한 답변은 에 이미 나와 있습니다.이 진술은 어떻게 파이썬에서 유효합니까?파이썬 :리스트와 함께 어떻게 작동합니까? '스팸'[1 : 3] 어떻게 작동합니까?
>>> 'spam'[1:3]
>>> 'pa'
질문은 어떻게 슬라이스가 str 유형과 관련되는지입니다. 그것은 '스팸'과의 평범한 결합인가?
감사 --Div
이 질문에 대한 답변은 에 이미 나와 있습니다.이 진술은 어떻게 파이썬에서 유효합니까?파이썬 :리스트와 함께 어떻게 작동합니까? '스팸'[1 : 3] 어떻게 작동합니까?
>>> 'spam'[1:3]
>>> 'pa'
질문은 어떻게 슬라이스가 str 유형과 관련되는지입니다. 그것은 '스팸'과의 평범한 결합인가?
감사 --Div
str
유형을 슬라이스 할 수있는 이유는 __getslice__
방법 (파이썬 2)과 __getitem__
방법 (파이썬 2와 3 모두)이 있기 때문입니다.
dir('spam')
에는 이러한 방법이 표시됩니다.
또한, 당신은 자세한 내용은 https://docs.python.org/2/reference/datamodel.html#object.getslice을 참조 할 수 있습니다 파이썬 3
에 파이썬 2 'spam'.__getslice__(1,3)
또는 'spam'.__getitem__(slice(1,3))
을 시도해보십시오.
완벽한 정보 주셔서 감사합니다. – user3069970
슬라이스 객체의 복사본이 조각 작품은 첫 번째 문자의 왼쪽 가장자리와 문자 사이 가리키는으로 인덱스 생각하는 것이 얼마나 기억
방법 중 하나를 생성 이어서 0 번째 N 개의 문자열의 마지막 문자의 우측 에지는 예를 들면 인덱스 n을 갖는다 :
가+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1
번호의 첫 번째 행 인덱스 0 ... 문자열 (6)의 위치를 제공하는 단계; 두 번째 행은 해당하는 음수 인덱스를 제공합니다. i에서 j까지의 슬라이스는 각각 i와 j로 표시된 가장자리 사이의 모든 문자로 구성됩니다. 이 도움이된다면 일반 배열과 같은 문자열 귀하의 경우에는
+---+---+---+---+
| s | p | a | m |
+---+---+---+---+
0 1 2 3 4
-4 -3 -2 -1
>>> 'spam'[1:3]
'pa'
생각합니다. 예를 들어
0 1 2 3
s p a m
그렇게 spam[1:3]
당신은 단순히 (스스로 길이가 1 인 문자열) 문자의 불변의리스트와 같은 문자열을 고려할 수 pa
즉, 문자열의 위치 [1, 3)
의 내용을 제공합니다 :
>>> list('spam')
['s', 'p', 'a', 'm']
>>> sorted('spam')
['a', 'm', 'p', 's']
>>> [c * 2 for c in 'spam']
['ss', 'pp', 'aa', 'mm']
그것은 그 할당이 작동하지 않습니다 의미하지만, 슬라이스는 목록처럼 동일합니다
,>>> 'spam'[1:3]
'pa'
>>> list('spam')[1:3]
['p', 'a']
이것은 문자열이 아니며 목록입니다. 조각 표기법이있는 문자열로, 색인 '1'에서 시작하여 색인 '3'에서 끝나는 문자열 ''spam ''을 가져옵니다. –