Python - 슬라이싱을 사용하여 마지막 K개 목록 항목의 합계 가져오기

WBOY
풀어 주다: 2023-09-06 11:17:06
앞으로
1470명이 탐색했습니다.

Python - 使用切片获取最后K个列表项的总和

Python에서는 슬라이싱 방법을 사용하여 문자열, 목록 또는 튜플과 같은 시퀀스에서 특정 요소를 추출할 수 있습니다. 이는 더 큰 시퀀스 내의 하위 시퀀스를 처리하는 간결하고 유연한 방법을 제공합니다. 이 기사에서는 슬라이싱 작업을 사용하여 목록의 마지막 K개 요소의 합을 구하는 방법을 살펴보겠습니다.

알고리즘

목록에서 마지막 K개 항목의 합계를 찾으려면 간단한 알고리즘을 따를 수 있습니다.

  • 목록과 K 값을 입력으로 받아들입니다.

  • 슬라이싱 연산자를 사용하여 목록에서 마지막 K개 항목을 추출합니다.

  • 추출된 항목의 합계를 계산합니다.

  • 합계를 출력으로 반환합니다.

문법

으아악

여기에서 슬라이스 메소드는 세 가지 선택적 매개변수를 허용합니다:

  • start(선택 사항): 슬라이스가 시작되어야 하는 요소의 인덱스입니다. 제공되지 않으면 기본값은 시퀀스의 시작입니다.

  • end(선택 사항): 슬라이스가 끝나야 하는 요소의 인덱스(제외)입니다. 제공되지 않으면 기본값은 시퀀스의 끝입니다.

  • step(선택 사항): 요소 선택을 위한 단계 또는 증분 값이 제공되지 않으면 기본값은 1입니다.

시작, 끝 및 단계 값은 양수 또는 음수일 수 있으므로 순방향 및 역방향으로 시퀀스를 탐색할 수 있습니다.

예 1: 슬라이싱 방법을 사용하여 마지막 K개 항목의 합 구하기

슬라이스에 음수 인덱스를 지정하면 목록 끝에서 시작하여 뒤로 이동할 수 있습니다. 다음은 슬라이싱을 사용하여 마지막 K개 목록 항목의 합계를 구하는 구문입니다.

아래 예에는 10개의 요소가 포함된 목록 my_list가 있습니다. 목록의 마지막 4개 항목의 합계를 구하려면 슬라이스 연산자 [-K:]를 사용하여 네 번째부터 다음까지의 범위를 지정합니다. −목록 끝에 있는 마지막 요소. 그런 다음 sum() 함수는 추출된 요소의 합계를 계산하여 280이 됩니다.

으아악

출력

으아악

예 2: 수집 모듈에서 tail 기능 사용

컬렉션 모듈의 tail 기능은 시퀀스에서 마지막 N개 요소를 추출하는 편리한 방법입니다. 이를 통해 음수 인덱스로 슬라이싱을 방지할 수 있습니다.

아래 예에서는 컬렉션 모듈에서 deque 클래스를 가져오고 필요한 최대 길이(maxlen)를 N으로 지정합니다. 숫자 목록과 maxlen=N을 deque에 전달하여 마지막 N 요소만 보유하는 deque 객체를 만듭니다. deque 객체를 리스트로 변환하려면 list(tail_elements)를 사용하면 tail 요소 [6, 7, 8, 9, 10]를 얻을 수 있습니다.

으아악

출력

으아악

예 3: itertools 모듈의 islice 함수 사용

itertools 모듈의 islice 함수를 사용하면 시작, 중지 및 단계 값을 제공하여 목록이나 문자열과 같은 반복 가능 항목에서 특정 하위 시퀀스를 추출할 수 있습니다.

아래 예에서는 itertools 모듈에서 islice 함수를 시작, 중지 및 단계 값과 함께 islice(numbers, start, stop, step)에 전달하여 원하는 하위 시퀀스를 추출합니다. [6 , 8, 10] list(islice(...))를 사용하여 결과를 목록으로 변환하면 하위 시퀀스를 인쇄할 수 있습니다

으아악

출력

으아악

결론

이 기사에서는 슬라이싱 방법을 사용하여 마지막 k 항목의 합계를 구하는 방법에 대해 논의했습니다. 슬라이싱 방법은 이러한 계산을 수행하는 간결하고 효율적인 방법을 제공하며 목록의 마지막 k 항목의 합계를 쉽게 얻을 수 있도록 해줍니다. 슬라이싱 방법은 하위 시퀀스 추출, 단계 값이 있는 요소 건너뛰기, 시퀀스 반전, 마지막 k개 요소 가져오기 등과 같은 다른 목적으로도 사용할 수 있습니다.

위 내용은 Python - 슬라이싱을 사용하여 마지막 K개 목록 항목의 합계 가져오기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!