Pythonのリストからインデックスを指定して要素だけを抽出するプログラム
問題の概要
nums という要素のリストが与えられたとします。ここから、0始まりのインデックスで奇数(1、3、5、7…)にあたる要素、つまり人間が数えるときの「2番目・4番目・6番目…」に位置する要素だけを取り出して返すことを考えます。
例えば、入力が nums = [5,7,6,4,6,9,3,6,2] の場合、出力は [7, 4, 9, 6] になります。
解き方の手順
- この問題は、Pythonのリストスライシング(スライス記法)を使うことで簡単に解決できます。
- インデックス1から処理を開始し、リストの末尾まで、ステップを2ずつ増やしながら要素を取得します。
- そのため、スライスの構文は
[1::2]となります。
実装例
以下の実装を見ると、動作の理解が深まるでしょう。
def solve(nums): return nums[1::2] nums = [5,7,6,4,6,9,3,6,2] print(solve(nums))
入力
[5,7,6,4,6,9,3,6,2]
出力
[7, 4, 9, 6]
スライス記法のポイント
nums[1::2] は、「開始位置が1」「終了位置は省略(リストの末尾まで)」「ステップは2」という意味を持っています。これにより、インデックス1、3、5、7に対応する要素である 7、4、9、6 が順番に取り出されます。
ループや条件分岐を書かなくても、スライス記法を1行使うだけで目的の要素を簡潔に抽出できるのがPythonの強みです。同様に、偶数インデックス(0、2、4…)の要素を取得したい場合は nums[0::2] または nums[::2] を使えばOKです。
-
リスト内の要素の合計を求めるPythonプログラム
この記事では、Pythonを使ってリスト内のすべての要素の合計を求める方法について、具体的なコード例とともに解説します。問題の定義リストが入力として与えられたとき、そのリストに含まれるすべての要素の合計値を計算する必要があります。例えば、[1, 2, 3, 4, 5]というリストが与えられた場合、出力は 15(1+2+3+4+5)となります。この問題を解くためのアプローチは主に2つあります。1つは組み込み関数を使用する方法、もう1つはブルートフォース(総当たり)方式でループ処理を行う方法です。方法1:組み込み関数 sum() を使うPythonには標準で用意されている組み込み関数 sum()
-
PythonでリストからN個の最大要素を取得する方法
整数のリストが与えられたとき、その中からN個の大きな要素を取り出して新しいリストとして返すのが、ここでの課題です。本記事では、基本的なループ処理による方法から、Python標準ライブラリを活用した効率的な方法まで、サンプルコードとともに解説します。 例 入力 : [40, 5, 10, 20, 9] N = 2 出力 : [40, 20] アルゴリズム 整数のリストと、取得する要素数Nを受け取ります。 N回のループを実行します。 各ループでリスト内の最大値を探し、新しいリストに格納すると同時に元のリストから削除します。 実装コード def Nnumberele(list1, N):