복붙노트

[PYTHON] 파이썬 - 목록에서 마지막 x 요소를 추출하는 방법

PYTHON

파이썬 - 목록에서 마지막 x 요소를 추출하는 방법

파이썬리스트의 길이가 주어진 값 (예를 들어 10)보다 크다면, 그리스트의 마지막 10 개 원소를 새로운리스트로 추출하고 싶습니다. 어떻게해야합니까? 나는 len (my_list) - 10 사이의 차이를 얻으려고 노력했다 : new_list = [(len (my_list) - 10) :])이 작동하지 않는다.

어떤 제안? 미리 감사드립니다.

해결법

  1. ==============================

    1.다음과 같이 간단합니다.

    다음과 같이 간단합니다.

    my_list[-10:]
    
  2. ==============================

    2.이것은 긴 목록을 최대 크기로 잘라내고 나머지를 새로운 목록에 넣는 방법을 보여줍니다. 그것은 정확히 당신이 요구하는 것이 아니지만 그것은 당신이 정말로 원하는 것일 수 있습니다 :

    이것은 긴 목록을 최대 크기로 잘라내고 나머지를 새로운 목록에 넣는 방법을 보여줍니다. 그것은 정확히 당신이 요구하는 것이 아니지만 그것은 당신이 정말로 원하는 것일 수 있습니다 :

    >>> list1 = [10, 20, 30, 40, 50, 60, 70]
    >>> max_size = 5
    >>> list2 = list1[max_size:]
    >>> list2
    [60, 70]
    >>> list1 = list1[:max_size]
    >>> list1
    [10, 20, 30, 40, 50]
    

    이것은 당신이 묻는 것과 비슷합니다. 기본적으로는 같지만 새로운 목록을 마지막부터 가져 가세요 :

    >>> list1 = [10, 20, 30, 40, 50, 60, 70]
    >>> list2 = list1[:max_size]
    >>> list2
    [10, 20, 30, 40, 50]
    >>> list2 = list1[-max_size:]
    >>> list2
    [30, 40, 50, 60, 70]
    >>> list1 = list1[:-max_size]
    >>> list1
    [10, 20]
    >>> 
    
  3. ==============================

    3.Python 자습서에는 목록 조각을 사용하는 방법에 대한 섹션이 있습니다. http://docs.python.org/tutorial/introduction.html#lists

    Python 자습서에는 목록 조각을 사용하는 방법에 대한 섹션이 있습니다. http://docs.python.org/tutorial/introduction.html#lists

    귀하의 경우에는 다음과 같이 간단하게 작성할 수 있습니다.

     new_list = my_list[-10:]
    
  4. ==============================

    4.사실, 귀하의 질문에 성명서의 아래 첨자가 완벽하게 작동합니다 - 직접 사용하려고하면 어떤 오류 또는 예기치 않은 결과가 붙여 넣을 수 있습니까? 당신이 제안한 아래 첨자의 성공적인 실행은 다음과 같습니다 :

    사실, 귀하의 질문에 성명서의 아래 첨자가 완벽하게 작동합니다 - 직접 사용하려고하면 어떤 오류 또는 예기치 않은 결과가 붙여 넣을 수 있습니까? 당신이 제안한 아래 첨자의 성공적인 실행은 다음과 같습니다 :

    >>> my_list = list('abcdefghijklmnop')
    >>> new_list = my_list[(len(my_list) - 10):]
    >>> new_list
    ['g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p']
    

    문제는 단순히 슬라이스 표기법으로 my_list의 이름을 지정하는 것을 잊었다는 것입니까?

    편집 : Felix가 지적한 것처럼, 인덱스가 음수가되지 않도록해야합니다.

    my_list[max(0, len(my_list) - 10):]
    

    그리고 물론, 다른 답변에서 알 수 있듯이, 일정한 음의 지표는 실제로 목표를 달성하는 가장 쉬운 방법입니다. 비록 슬라이스에 관한 파이썬의 관습을 최대한 활용하지 못했지만, 마지막 10 가지 요소를 얻는 "자신 만의 방식"이 왜 잘못되었는지를 먼저 생각하고 싶었습니다.

  5. from https://stackoverflow.com/questions/8556076/python-how-to-extract-the-last-x-elements-from-a-list by cc-by-sa and MIT license