リスト型

公式サイト:

リスト型 (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_listCode language: Python (python)

結合したリストを返す。

def concat(first_list, second_list):
    return first_list + second_listCode language: Python (python)

ドキュメント:

共通のシーケンス演算 | Python 3.x ドキュメント [公式]

ミュータブルなシーケンス型 | Python 3.x ドキュメント [公式]

リスト型についてもう少し | Python 3.x ドキュメント [公式]

参考:

リストを作成する | JavaDrive

リストの要素を取得する | JavaDrive

リストへの要素の追加と別のリストとの結合 | JavaDrive

append / extend / insert – リストに要素を追加する | note.nkmk.me

スライス

参考:

スライス操作についてまとめ – Qiita

スライスを使ってリストの指定した範囲の要素が含まれる新しいリストを取得する | JavaDrive

スライスによるリストや文字列の部分選択/代入 | note.nkmk.me

スライスの使いかたの基本 | Hbk project

リストの要素にインデックスやスライスを使ってアクセスするには | @IT

繰り返し処理

こちらのページを参照

参考:

配列のループ処理 – Qiita

リストと繰り返し処理 | @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 ドキュメント [公式]

参考:

range の使い方のポイント | 鎖プログラム

range – 連番のリストを生成する | まくまくノート

range 関数の使い方 | note.nkmk.me

内包表記 (Comprehension)

power_of_two = [ 2**i for i in range(17) ]Code language: Python (python)

参考:

List Comprehension – リストの作り方いろいろ – Qiita

内包表記を少し詳しく – Qiita

内包表記/リストとジェネレータ式について – Qiita

リスト内包表記の使い方 | note.nkmk.me

リスト内包表記 | From the Southern Hemisphere

内包表記構文/ジェネレータ/ヘルパー関数について | BOKU の IT な日常

ジェネレーター式と内包表記を使ってみよう | @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 ドキュメント [公式]

参考:

リストから要素を削除する 4つの方法! | コードライク

リストから要素を削除する | JavaDrive

clear / pop / remove / del – リストの要素を削除する | note.nkmk.me

リストから要素を削除するには | @IT

アンパック

こちらのページを参照

参考:

アスタリスク (*) によるリストのアンパック | Python 入門

タプルやリストをアンパック/複数の変数に展開して代入 | note.nkmk.me

アンパック – 要素をスマートに取り出す | ごめ茶

式のリスト | Python 3.x ドキュメント [公式]

呼び出し | Python 3.x ドキュメント [公式]

proper name for Python * operator? – Stack Overflow

乗算演算子

整数とシーケンスを乗算記号で演算すると、シーケンスが指定した回数繰り返される。

ten_of_zero = [0] * 10Code language: Python (python)

参考:

リストの要素を n 回繰り返すスマートな方法 | Deep Rain

結合と繰り返し | Pyming

掛け算オペレータによるリストの初期化に注意 – Qiita

同じ配列を繰り返して連結する | hydrocul のメモ

二項算術演算 | 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 でリストの要素が含まれるか調べる | 鎖プログラム

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

リストから要素を検索する | @IT

集合に変換する

リストをセットに変換する。

digits = set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])Code language: Python (python)

参考:

集合とリストを相互に変換する方法 | HEADBOOST

文字列に変換する (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 ドキュメント [公式]

参考:

リストのコピーでハマった話 – Qiita

copy と deepcopy について – Qiita

コピーと結合 | やさしい Python 入門

copy / deepcopy – 浅いコピーと深いコピー | note.nkmk.me

リストの複製 – 浅いコピーと深いコピー | Web 備忘録

パフォーマンス

参考:

内包表記とジェネレータ式のメモリ使用量比較 | Shunya Ueta

まとめ

リストの作成方法まとめ | HEADBOOST

リスト | JavaDrive

リストの操作 | @IT

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA