Pythonでは、リストの複数のインデックスを操作する方法がいくつかあります。ここでは、その中から主に2つの方法を紹介します。
複数のインデックスの値を取得
Pythonのoperator
モジュールのitemgetter
関数を使用すると、リストから複数のインデックスを指定して値を取得することができます。以下にその使用例を示します。
from operator import itemgetter
sentence = ["why","japanese","people","!!"]
print(itemgetter(0,2)(sentence)) # ('why', 'people')
このコードでは、sentence
リストの0番目と2番目の要素を取得しています。
また、ランダムに複数のインデックスの値を取得することも可能です。
from operator import itemgetter
import numpy as np
datasetA = ["a","b","c","d"]
datasetB = [1,2,3,4]
data_size = len(datasetA)
sample_size = 2
shuffled_idx = np.random.choice(np.arange(data_size), sample_size, replace=False)
datasetA_random_pickup = itemgetter(*shuffled_idx)(datasetA)
datasetB_random_pickup = itemgetter(*shuffled_idx)(datasetB)
このコードでは、np.random.choice
関数を使用してランダムにインデックスを選択し、そのインデックスの値を取得しています。
複数の指定したインデックスを削除
リストから複数のインデックスを指定して値を削除する方法もあります。以下にその使用例を示します。
dellist = lambda items,indices: [item for idx,item in enumerate(items) if idx not in indices]
del_idx = [0,2] # 削除するインデックス
sentence = ["why","japanese","people","!!"]
sentence_deleted = dellist(sentence, del_idx) # ['japanese','!!']
このコードでは、dellist
というラムダ式を使用して、指定したインデックスの要素を削除しています。
以上、Pythonでリストの複数のインデックスを操作する方法について紹介しました。これらの方法を活用することで、Pythonでのリスト操作がより柔軟になります。.