この記事について
python初心者である私が学習したものをまとめたものです.
リスト型について超基本的なことを書きました.
特徴
-
複数の要素を順番に管理できるデータ型
-
インデックスを使って要素の取得,変更ができる
-
メソッドや文により,要素の追加や削除,並び替えを行えるほか,要素の検索,要素数を取得することが可能
-
オブジェクト自体書の書き換え可能(変更可能な[=mutable]データ型)
リストの定義方法
リスト型の定義するには,角括弧[ ]を使って定義する
tokyoTempList = [16.7,20.9,35.8,10.3]
リストの繰り返し
list = ['あ','いう','え','お']
for str in list:
print(str)
リストのソート
- リスト型では要素を昇順に入れ替えるソートをsort()メソッドによって行える.
- reverseキーワード引数をTrueに指定する降順にできる.
※リスト型は変更可能なデータ型であり,sort()を呼び出すと,リストオブジェクト自体が書き換わる.
monk_fish_team = [158,157,163,157,145]
monk_fish_team.sort()
monk_fish_team
ソート順をカスタマイズ
数値以外の大小以外に基づいたソート順のコントロールが可能
書式はlist.sort(key, reverse)
key引数には順番を決める基準を返す関数を渡す.
bmi_data = [("太郎",1.85,75),("花子",1.6,57),("おれ",1.8,67)]
# BMIを計算する関数を定義
def evaluate_bmi(tup):
return tup[2]/tup[1]**2
bmi_data.sort(key=evaluate_bmi)
アンパック代入
- イコールの左右に複数の要素を記入して,一度に複数の要素に対して代入を行う機能
- アンパック代入ではイコールの左右で要素数が揃っていないとエラーになる.
a = 1
b = 2
c = 3
(a,b,c) = (b,c,a)
# または
a,b,c = b,c,a
print(a,b,c)
スライスのステップ数
- スライスに与えるコロン(:)区切ったパラメータには3つ与えることができる.
- 3つ目の数値はステップとして扱われる.
- n個飛ばしながら要素を取り出すことができる.
a = [1,2,3,4,5,6,7,8,9,10]
# 通常のスライス
print(a[1:4]) #[2, 3, 4]を出力
print(a[2:100]) #[3, 4, 5, 6, 7, 8, 9, 10]を出力
# 先頭の次からn番目の要素を取り出していく
print(a[::3]) #[1, 4, 7, 10]を出力
リストで利用できるメソッド
- reverse()メソッド:並び順逆にする
a = [1,2,3,4,5]
a.reverse()
a
- remove(取り除く要素)メソッド:要素を削除する
a = [1,2,3,4,5]
a.remove(a[0])
a.remove(2)
a
a.remove(9) #意図的にValueError発生
- append(追加する要素)メソッド:末尾を追加する
a = [1,2,3,4,5]
a.append(6)
a #[1, 2, 3, 4, 5, 6]
- extend(追加するシーケンス)メソッド:末尾にシーケンスを追加する
a = [1,2,3,4,5]
a.extend("678")
a.extend((9,10))
print(a) #[1, 2, 3, 4, 5, '6', '7', '8', 9, 10]
- pop(インデックス)メソッド:削除した要素を返す
a = [1,2,3,4,5]
a.pop(2)
a #[1, 2, 4, 5]
- index(検索したい要素)メソッド:要素を検索してインデックスを返す
a = [1,2,3,4,5]
a.index(1) #0
a.index(6)#Value Error発生