インデックス
一般的(だと思う)基本的なリストの要素へのアクセス
i 番目の要素にアクセスする
インデックスを使って i 番目の要素にアクセスする
list_sample = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5] print(list_sample[0]) >>2 print(list_sample[1]) >>9 print(list_sample[2]) >>3
後ろから i 番目の要素にアクセスする
インデックスに負の値を使うと末尾からアクセスできる
list_sample = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5] print(list_sample[-1]) >>5 print(list_sample[-2]) >>8 print(list_sample[-3]) >>6
スライス
範囲指定してリストの一部を切り取れます.
list_sample[ A:B:C ]
上の例ではA番目からB番目までの要素についてC個おきに取り出す
スライスを使用して,好きな範囲・順番で取り出す
4番目から19番目までの要素について2個おきに取り出す場合
list_sample = [4,2,8, 5,3,6,1,0,7,9,8,2,6,1,9,5,4,7, 3,0] tmp = list_sample[3:18:2] print(tmp) >>[5, 6, 0, 9, 2, 1, 5, 7]
ただし,色々省略して書くことも可能.
未記入の場合はAが先頭,Bが末尾,Cが1となります.
未記入の場合はAが先頭,Bが末尾,Cが1となります.
先頭から i 番目までの要素を取り出す
省略場合の実行例
list_sample = [4,2,8,5,3,6,1,0,7,9] tmp = list_sample[:5] print(tmp) >>[4, 2, 8, 5, 3]
末尾から i 番目までの要素を取り出す
インデックスには上で登場した負の値も使用できます.
list_sample = [4,2,8,5,3,6,1,0,7,9] tmp = list_sample[:-3] print(tmp) >>[4, 2, 8, 5, 3, 6, 1]
奇数番目・偶数番目のデータのみ取り出す
スライスを使用すれば簡単に実装できます.
list_sample = [4,2,8,5,3,6,1,0,7,9] even = list_sample[1::2] print(even) >>[2, 5, 6, 0, 9] odd = list_sample[::2] print(odd) >>[4, 8, 3, 1, 7]
逆順で要素を取り出す
Cの部分に負の値を使用することで,逆順に要素を取り出せます.
list_sample =[4,2,8,5,3,6,1,0,7,9] tmp = list_sample[::-1] print(tmp) >>[9, 7, 0, 1, 6, 3, 5, 8, 2, 4]
for文を使ってデータにアクセスする
for文を使うことで1個づつデータを取り出すことが出来るようになります.
一個づつ参照する
シンプルなリストの要素へのアクセス
list_sample = [4,2,8,5,3]
for i in list_sample:
print(i)
>>4
>>2
>>8
>>5
>>3
別の実装
list_sample = [4,2,8,5,3]
for i in range(len(list_sample)):
print(list_sample[i])
>>4
>>2
>>8
>>5
>>3
リストの要素へ逆順にアクセス
実装は色々あるけど,スライスを使うのが一番シンプル
list_sample = [4,2,8,5,3]
for i in list_sample[::-1]:
print(i)
>>3
>>5
>>8
>>2
>>4
リストの要素とインデックスを同時に取得
enumerate関数を使えば要素とインデックスを同時に取得できます.
list_sample = [4,2,8,5,3]
for index, val in enumerate(list_sample):
print(str(index) + "番目の値:" + str(val))
>>0番目の値:4
>>1番目の値:2
>>2番目の値:8
>>3番目の値:5
>>4番目の値:3
複数のリストを同時に取得
zip関数を使えば複数のリストの要素を同時に取得できる
list_sample_A = ['国語','理科','社会','数学','英語']
list_sample__B = [62, 92, 51, 99, 67]
for index, val in zip(list_sample_A, list_sample__B):
print(str(index) + "の点数は" + str(val) + "点でした.")
>>国語の点数は62点でした.
>>理科の点数は92点でした.
>>社会の点数は51点でした.
>>数学の点数は99点でした.
>>英語の点数は67点でした.
内容物の検索
インデックスではなく,要素を使って探索します.
要素Xが存在しているか調べる
in を使用してリスト内に要素Xが存在するか調べます.
list_sample = [4,2,8,5,3,6,1,0,7,9]
if 3 in list_sample:
print('Yes')
else:
print('No')
>>Yes
要素Xの個数を調べる
リスト内に要素Xが何個存在するか調べます.
list_sample = [4,2,8,5,3,6,1,0,7,9,8,2,6,1,9,5,4,7,3,0] tmp = list_sample.count(2) print(tmp) >>2
要素Xの位置を調べる
要素Xが最初に登場する位置のインデックスを返します.リストに含まれていない値を指定するとエラーを吐きます.
list_sample = [4,2,8,5,3,6,1,0,7,9,8,2,6,1,9,5,4,7,3,0] tmp = list_sample.index(5) print(tmp) >>3 tmp = list_sample.index(100) print(tmp) >>ValueError: 100 is not in list
要素Xが最初に登場する全ての位置のインデックスが欲しい場合.
list_sample = [4,2,8,5,3,6,1,0,7,9,8,2,6,1,9,5,4,7,3,0] tmp = [i for i, x in enumerate(list_sample) if x == 3] print(tmp) >>[4, 11, 18]
0 件のコメント:
コメントを投稿