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]

※黄色の部分は「内包表記」というらしい...


もどる

このブログの人気の投稿

電力会社と音質

メディアサーバーの Plex, Emby, Jellyfin を試す

増え続ける iTunes のコンピレーションを減らす(Windows)

Manjaro Linux KDE Plasma に Waydroid をインストール

foobar2000 を UPnP/DLNA Renderer として使う