通常、我々は特定の値が配置されているインデックスを見つける必要があります。 それを達成するために多くの方法があります、index()などを使用します。 しかし、時には、それがリスト内で複数回発生する場合に、特定の値のすべてのインデックスを見つける必要があります。
与えられたリスト内の値のインデックスを見つけるための特定の方法について説明します。
方法1 : 非線形方法
我々は、リストを通して繰り返し、その値についてチェックして、新しいリストで値のインデックスを追加してそれを表示することによってこのタスクを達成することができます。 これは、このタスクを達成するための基本的なブルートフォースメソッドです。
test_list = print ("Original list : " + str(test_list)) res_list = for i in range(0, len(test_list)) : if test_list == 3 : res_list.append(i) print ("New indices list : " + str(res_list)) 出力します。
Original list : New indices list :
方法2:リスト内包の使用
リスト内包は総当たりタスクを達成するための単なる省略記法で、タスクを達成するために使用するコード行数が少なく、その結果プログラマーの時間を節約できます。
test_list = print ("Original list : " + str(test_list)) res_list = == 3] print ("New indices list : " + str(res_list)) 出力します。
Original list : New indices list :
方法3:enumerate()
を使用して、我々は同様のタスクを達成することができます、これは上記の技術よりもわずかに高速なので、したがって、リストを理解する技術よりも使用することをお勧めします。
test_list = print ("Original list : " + str(test_list)) res_list = print ("New indices list : " + str(res_list)) 出力されます。
Original list : New indices list :
Method #4 : Using filter()
これはこの特定のタスクを達成するために採用できる別の方法です、filter()は通常フィルタリング作業を行うことができますので、このタスクを達成するためにこの状況でも使用することができます。
test_list = print ("Original list : " + str(test_list)) res_list = list(filter(lambda x: test_list == 3, range(len(test_list)))) print ("New indices list : " + str(res_list)) 出力されます。
Original list : New indices list :
記事タグ:
練習用タグ: