2013-02-20 4 views
0

저는 아주 간단한 작업을하려고합니다. 목록에서 마지막 40 개 요소를 가져와야합니다.python 목록의 마지막 40 개 요소를 인쇄하십시오.

표준 함수 중 하나를 사용하여 문자열에서 마지막 n 문자를 가져 오는 것과 같이 직접적인 방법이 없다는 것을 알았습니다.

나는 목록의 길이를 얻는 방법을 알고있다. 그래서 내가 염두에두고있는 것은 최대 길이를 사용하고 목록의 끝에서 시작하여 for 루프를 수행하고 80 회 뒤로 이동하는 것입니다.

max_size= len(my_list) 

for i in range(max_size, (maxsize-80)): 
    print my_list[i] 
    i=i-1 

올바른 방법입니까? 또는이 일을 할 수있는 일종의 함수가 목록 개체에 있습니까? 나는 python 사이트의 문서를 시도했지만 운이 없었습니다.

+1

my_list [-40 :]도 작동합니다. – Octipi

+0

나는 my_list [-40 :]를 출력한다고 말하고있다. 그건 아주 똑똑한데 –

+1

@JBernardo는 처음 40 번 이후의 항목을 인쇄하지만 마지막 40 번은 인쇄하지 않습니다. – wim

답변

3

my_list[-40:]에는 최근 40 개 항목이 있습니다. 특히, 음수 목록 색인은 목록의 끝에서부터 많은 항목을 다시 계산하도록 지시하고, 콜론은 나중에 끝까지 계속하도록 지시합니다.

0

슬라이싱은 지적 된대로 원하는대로 할 수 있습니다. 당신은 단지 반복 할 수 있다면 (즉, 길이가 없거나 앞으로 만 읽을 수 있습니다) :

>>> from collections import deque 
>>> deque(range(10), 2) 
deque([8, 9], maxlen=2) 
관련 문제