pythonでリストを扱う方法について学習しましょう。
リストには『[1,2,3,…]』のようにデータを記述する形式と『{“type”:”dog”,”name”:”cookie”,…}』のようにデータに名前を付けられる辞書型の2つがあります。
ここでは前者の基本的なリストを紹介します。
リストの基本操作
リストの要素を出力する
リストに記述した要素を出力するには『print』コードを使用して『print(リスト名[要素番号])』と記述します。
#リストの要素を出力
list=[1,2,3]
print(list[1])
#実行結果
2
ここで、Pythonのデータ管理は0から始まり、1番目のデータを呼び出すためには『リスト名[0]』、2倍目のデータを呼び出すためには『リスト名[1]』となることを覚えておきましょう。
m番目からn番目の要素を取得
次にリストの前後から要素を取得する方法です。
データのn番目までを呼び出すためには『:n』、n番目より後ろの値を呼び出すためには『n:』を使います。
#n番目まで、n番目以降の要素を取得
list=[1,2,3,4,5]
print("2番目までの値を取得")
ex=list[:2]
print(ex)
print("2番目より後ろの値を取得")
ex=list[2:]
print(ex)
print("2番目から4番目の値を取得")
ex=list[1:4]
print(ex)
#実行結果
2番目までの値を取得
[1, 2]
2番目より後ろの値を取得
[3, 4, 5]
2番目から4番目の値を取得
[2, 3, 4]
ここで『:2』が2を含むのに対し『2:』では2を含まない点に注意しましょう。
『list=[1,2,3,4,5]』の『,』に番号を振り2番目(2と3の間)より前か後ろかイメージすると分かりやすいでしょう。
前後からn個の要素を取得
次に少しややこしいマイナス表現を用いた要素の取得です。
上と同じように『:-n』『-n:』を用いますが、『,』の数を右から数えるイメージを持つと分かりやすいでしょう。
#前後からn個の要素を取得
list=[1,2,3,4,5]
print("前から3個の値を取得")
ex=list[:-2]
print(ex)
print("後ろから3個の値を取得")
ex=list[-3:]
print(ex)
#実行結果
前から3個の値を取得
[1, 2, 3]
後ろから3個の値を取得
[3, 4, 5]
n個ごとに要素を取得
『::n』という表現を用いると要素をn個ごとに取得できます。
例えばリスト内のデータを2ごとに取得する時には以下のように記述します。
#n個ごとに要素を取得
list=[1,2,3,4,5]
ex=list[::2]
print(ex)
#実行結果
[1, 3, 5]
リストに要素を追加する
リストの最後に新しい要素を追加するには『append(追加したい要素)』と記述します。
#リストに要素を追加
list=[1,2,3]
list.append(4)
print(list)
#実行結果
[1, 2, 3, 4]
リストから要素を取り除く
反対にリストから要素を削除する時には『pop(番号)』を使用します。
#リストから要素を削除
list=[1,2,3]
list.pop(1)
print(list)
#実行結果
[1, 3]
『list.pop(1)』では『1』の要素を取り除くのではなく、2番目の要素を削除する点に注意しましょう。(データ操作は0から始まるため1は2番目のデータを指す)
リストを空にする
リストの中身を空にする時は『clear』を使います。
#リストを空にする
list=[1,2,3]
list.clear()
print(list)
#実行結果
[]
出力すると『[]』だけになります。
リストの値をn倍する
リスト内全ての値をn倍するためには『演算 for 変数 in list』の形式を使います。
下記の例文は、リスト内の数値を3倍するコード、奇数の要素を2倍し偶数の要素を0にするコードです。
#リストの値をn倍
list=[1,2,3,4,5]
ex=[x*3 for x in list]
print(ex)
print("ifを使ったリストの演算")
ex2=[x*2 if x%2==1 else x*0 for x in list]
print(ex2)
#実行結果
[3, 6, 9, 12, 15]
ifを使ったリストの演算
[2, 0, 6, 0, 10]
ここで注意したいのif文、for文の使い方です。
通常のif文は『if 条件 実行内容1 else 実行内容2』の順ですが、上記の例では『実行内容1 条件 else 実行内容2』となります。
また、for文についても『for 条件 実行内容』の順ではなく『実行内容 for 条件』になります。
リストの並びを逆にする
リスト内の要素を逆の順番に並び変えるには『reverse』を使います。
#リストの並びを逆にする
list=[1,2,3]
list.reverse()
print(list)
#実行結果
[3, 2, 1]
リストの並びをソートする
『リスト名.sort()』でリストの中身を昇順にソートできます。
また、『リスト名.sort(revese=True)』で降順にソートできます。
#リストをソートする
list=[1,2,3,2,1]
print ("昇順はsortを使います")
list.sort()
print(list)
print ("降順はreverse=Trueを使います")
list.sort(reverse=True)
print(list)
#実行結果
昇順はsortを使います
[1, 1, 2, 2, 3]
降順はreverse=Trueを使います
[3, 2, 2, 1, 1]
リストから個数を検索する
リストからデータの個数を検索する時には『count(検索したいデータ)』を使います。
#要素の個数を検索
list=[1,2,3,2,1]
num=list.count(2)
print(num)
#実行結果
2
リスト内の要素が何番目か検索する
リスト内で要素の番号を調べるためには『index』コードを使います。
ここではリストのデータ管理は0番目から始まることに注意して例文を見てみましょう。
#リストの要素を検索
list=[1,2,3]
try:
print(list.index(1))
print(list.index(2))
print(list.index(3))
print(list.index(リストにない値))
except NameError:
print("リストにない値はエラー")
#実行結果
0
1
2
リストにない値はエラー
ここまでがPythonの基本的なリスト操作になります。
使用頻度の低いコードも多々あるため、一度にすべてのコードを覚える必要はありません。
少しずつ経験を積んで習得していきましょう。
コメント