2017-10-24 11 views
0

배열이나리스트에서 파트를 복사하는 것에 관한 몇 가지 질문을 보았습니다.하지만 여전히 그 논리를 이해하지 못합니다 ... 인덱스를 호출하여 값 만도 인덱스를 호출하여 목록의 일부를 얻을 수 없습니다가 ...리스트에서 값을 얻는 방법

x=[0,1,2,3,4,5] 
>>>x[2] 
2 
>>>x[4] 
4 
>>>x[2:4] 
[2,3] 

내가 마지막 줄에 기대하고있을 것이라고 명령 반환 인덱스 2, 3, 4의 값!

>>> x[2:4] 
[2,3,4] 

내가 그런 식으로 생각하는 명령이 있습니까?

+2

이 필요 귀하의 경우 인덱스 b 을 최대 인덱스 a에서 x[a:b] 시작을 작성하고 포함하지 않음 슬라이스 연산자가 작동합니다. 당신이하려고하는 것은 목록에 subscript입니다. [this] (https://stackoverflow.com/questions/509211/understanding-pythons-slice-notation) 게시물을 읽어보십시오. – pstatix

+0

https://stackoverflow.com/questions/509211/understanding-pythons-slice-notation 여기가 도움이 될 것입니다. – voiDnyx

+0

'x [2 : 4 + 1]'은 어떻습니까? – jadsq

답변

2

x[2:4]은 색인이 2 <= index < 4 인 모든 값을 가져옵니다. 따라서 인덱스 23이 표시되지만 4은 표시되지 않습니다. 이것은 당신이 항상 낮은 경계에 의한 상한값을 빼서 부분 목록 (파이썬뿐만 아니라 일반 컴퓨팅에서도)의 크기를 알 수 있도록하기 위해서입니다. 4 - 2 = 2이므로 목록에는 두 개의 항목이 있습니다.

E.W. Dijkstra가 글을 쓰는 데 흥미로운 부분이 있다면 here입니다. 당신이 수행하는

0

작업 :

x[2:4] 

slicing operation라고합니다. 그러한 형식으로 list[x:y]의 경우 x에서 y-1 범위의 인덱스 값을 가져옵니다. 즉, 따라서 list[x]...list[y-1]

, 당신은 X [2 : 4] 수행 할 때

>>> x = [0,1,2,3,4,5] 
>>> x[2:4] 
=> [2, 3] 

#should be 
>>> x[2:5] 
=> [2, 3, 4] 

몇 독서 참조 :

따라서

x[2]...x[4-1] => x[2]...x[3] 

당신이에에서, 당신은 값을 얻을 것이다

0

당신은 할 수

x[2:5]

때문에 그래서 당신은 당신은 방법에 읽을 필요가 x[a:b+1]

관련 문제