リスト型
公式サイト:
リスト型 (list) | Python 3.x ドキュメント [公式]
使い方
空のリストを作成する。
empty = []
Code language: Python (python)
リストの要素を取得する。
value = data[3]
Code language: Python (python)
リストに要素を追加する。
data.append(123)
Code language: Python (python)
リストの末尾に別のリストを結合する。
first_list.extend(second_list)
Code language: Python (python)
リストの末尾への別のリストの結合は +=
演算子でも行える。
first_list += second_list
Code language: Python (python)
結合したリストを返す。
def concat(first_list, second_list):
return first_list + second_list
Code language: Python (python)
ドキュメント:
共通のシーケンス演算 | Python 3.x ドキュメント [公式]
ミュータブルなシーケンス型 | Python 3.x ドキュメント [公式]
リスト型についてもう少し | Python 3.x ドキュメント [公式]
参考:
リストへの要素の追加と別のリストとの結合 | JavaDrive
append / extend / insert – リストに要素を追加する | note.nkmk.me
スライス
参考:
スライスを使ってリストの指定した範囲の要素が含まれる新しいリストを取得する | JavaDrive
スライスによるリストや文字列の部分選択/代入 | note.nkmk.me
リストの要素にインデックスやスライスを使ってアクセスするには | @IT
繰り返し処理
参考:
連番を作成する
one_to_ten = list(range(1, 11))
print(one_to_ten)
# => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Code language: Python (python)
ドキュメント:
range | Python 3.x ドキュメント [公式]
参考:
内包表記 (Comprehension)
power_of_two = [ 2**i for i in range(17) ]
Code language: Python (python)
参考:
List Comprehension – リストの作り方いろいろ – Qiita
リスト内包表記 | From the Southern Hemisphere
内包表記構文/ジェネレータ/ヘルパー関数について | BOKU の IT な日常
When to Use a List Comprehension in Python | Real Python
List Comprehension | W3Schools
if / else in a list comprehension – Stack Overflow
要素を追加する (append)
ドキュメント:
ミュータブルなシーケンス型 | Python 3.x ドキュメント [公式]
参考:
Insert an element at the end of a list? – Stack Overflow
要素を挿入する (insert)
参考:
リストの指定した位置へ要素を挿入する | JavaDrive
要素を削除する
clear
メソッド: 全ての要素を削除するpop
メソッド: 指定した位置の要素を削除するremove
メソッド: 指定した値と同じ要素を探索し、一致した最初の要素を削除するdel
文: 指定した位置または範囲の要素を削除する- 内包表記
ドキュメント:
ミュータブルなシーケンス型 | Python 3.x ドキュメント [公式]
参考:
clear / pop / remove / del – リストの要素を削除する | note.nkmk.me
アンパック
参考:
アスタリスク (*) によるリストのアンパック | Python 入門
タプルやリストをアンパック/複数の変数に展開して代入 | note.nkmk.me
式のリスト | Python 3.x ドキュメント [公式]
proper name for Python * operator? – Stack Overflow
乗算演算子
整数とシーケンスを乗算記号で演算すると、シーケンスが指定した回数繰り返される。
ten_of_zero = [0] * 10
Code language: Python (python)
参考:
リストの要素を n 回繰り返すスマートな方法 | Deep Rain
二項算術演算 | Python 3.x ドキュメント [公式]
Why does using multiplication operator on list create list of pointers? – Stack Overflow
リストに同じ要素が含まれているか判定する
in
演算子count
メソッドindex
メソッド
ドキュメント:
所属検査演算 (in / not in) | Python 3.x ドキュメント [公式]
共通のシーケンス演算 | Python 3.x ドキュメント [公式]
参考:
リストに指定した値と同じ要素が含まれているか確認する | JavaDrive
in 演算子でリストなどに特定の要素が含まれるか判定 | note.nkmk.me
リストに含まれる全ての要素がもう一つのリストに含まれるかの検証方法 – Qiita
in / not in / count / index / min / max – リストから要素を検索する | @IT
Is there a short contains function for lists? – Stack Overflow
要素の位置を取得する
ドキュメント:
共通のシーケンス演算 | Python 3.x ドキュメント [公式]
参考:
リストの要素のインデックスを取得 | note.nkmk.me
集合に変換する
リストをセットに変換する。
digits = set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Code language: Python (python)
参考:
文字列に変換する (join)
内包表記を用いて数値のリストを文字列に変換する。
numbers = [192, 168, 0, 1]
address = '.'.join([ str(i) for i in numbers ])
Code language: Python (python)
map
で文字列に変換する。
address = '.'.join(map(str, [192, 168, 0, 1]))
Code language: Python (python)
参考:
How to convert list to string – Stack Overflow
代入
ドキュメント:
なぜリスト `y` を変更するとリスト `x` も変更されるのですか? | Python 3.x ドキュメント [公式]
参考:
リストの要素を消す際の clear 関数の注意点と対策 | りっぱなパセリは突っ走る
参照渡し/浅いコピー/深いコピー – まずは理屈抜きで覚えよう | Snow Tree in June
clear するとコピーしていた変数も変わってしまう – スタック・オーバーフロー
リストを別の変数に代入して操作すると内容が壊れる – スタック・オーバーフロー
リストを複製する
手段
copy
メソッド: 浅いコピーを作成するcopy.deepcopy
: 深いコピーを作成する
ドキュメント:
ミュータブルなシーケンス型 | Python 3.x ドキュメント [公式]
copy – 浅いコピーおよび深いコピー操作 | Python 3.x ドキュメント [公式]
参考:
copy / deepcopy – 浅いコピーと深いコピー | note.nkmk.me
リストの複製 – 浅いコピーと深いコピー | Web 備忘録
パフォーマンス
参考:
内包表記とジェネレータ式のメモリ使用量比較 | Shunya Ueta