Python: リスト
Python 独習メモ
「関連するデータをグループにしてひとつの変数として扱う」仕組みをデータ構造といい、Python ではコレクション(collection)またはコンテナ(container)と呼ぶ。
「リスト」はコレクションのひとつ。
リストは複数の値を1列に並べて管理するコレクション。
リストに格納されるそれぞれの値を要素(element)といい、先頭から順にインデックス(index)または添字と呼ばれる、0から始まる管理番号が自動で振られる。
↓ こんなイメージ
'森(0)', '藤平(1)', '有友(2)', '吉田(3)'
リストの定義
変数 = [要素1, 要素2, 要素3, …]
※要素は数値や文字列など
members = ["吉田", "森", 100]
print(members)
実行結果
['吉田', '森', 100]
特定の要素だけを抽出したい場合は、変数名の後ろにインデックス(添字)を[]で囲んで記述する。
members = ["藤平", "吉田", 100]
print(members[1])
実行結果
吉田
sum 関数
リスト内の全要素の合計を求める
scores = [70, 80, 90]
total = sum(scores)
print(f'合計{total}点です')
実行結果
合計240点です
len 関数
リスト内の要素の数を求める
scores = [70, 80, 90]
print(len(scores))
実行結果
3
要素の追加
リスト.append(追加する要素)
members = ['藤平', '森', '有友']
members.append('吉田')
print(members)
実行結果
['藤平', '森', '有友', '吉田']
要素の削除
リスト.remove(削除したい要素)
members = ['鈴木', '山田', '斉藤', '上野']
members.remove('山田')
print(members)
members = ['鈴木', '山田', '斉藤', '上野']
members[1] = '野田'
print(members)
実行結果
['鈴木', '野田', '斉藤', '上野']
スライスによる範囲指定
リスト[A:B]
members = ['鈴木', '山田', '斉藤', '上野']
print(members[1:3])
実行結果
['山田', '斉藤']
members = ['鈴木', '山田', '斉藤', '上野']
print(members[1:])
実行結果
['山田', '斉藤', '上野']
members = ['鈴木', '山田', '斉藤', '上野']
print(members[:3])
実行結果
['鈴木', '山田', '斉藤']
members = ['鈴木', '山田', '斉藤', '上野']
print(members[:])
実行結果
['鈴木', '山田', '斉藤', '上野']
負の添字による指定
こんな感じ
'山田(-3)', '井上(-2)', '白石(-1)'
members = ['鈴木', '山田', '斉藤', '上野']
print(members[-2])
実行結果
斉藤
空のリストを作る
何もないリストが必要な時がある!
new_list = []
または、
new_list = list()
これで空のリストができる。
_/_/_/_/_/_/_/_/_/
ふと思った疑問
リストの全ての要素を2倍にする方法は?
一発で2倍にする方法はない?
こんな方法を使うらしい。
list = [1,2,3,4,5,6,7,8,9]
newlist = []
for n in list:
newlist.append(n*2)
print(newlist)
実行結果
[2, 4, 6, 8, 10, 12, 14, 16, 18]
または、
list = [1,2,3,4,5,6,7,8,9]
newlist = [n*2 for n in list]
print(newlist)
実行結果
[2, 4, 6, 8, 10, 12, 14, 16, 18]
※黄色の部分は「内包表記」というらしい...