MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Pythonの基礎 - リストの作成と操作のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Pythonの基礎 - リストの作成と操作
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == ここでは、リスト型のデータを扱う。<br> リストは、0個以上の複数のデータを一覧にして管理することができる。<br> <br> Pythonのリスト型は、異なる種類のデータ型を格納できる。<br> <br><br> == リストの作成とインデックス == ===== リスト型変数の宣言 ===== Pythonのリストを作成するには、角括弧[]を使用する。 この中に、カンマを使用して要素を区切って記述する。 <syntaxhighlight lang="python"> a = [1, 2, 3, 4, 5] b = [6, 7, 8, "apple", "python"] </syntaxhighlight> <br> ===== list関数でリストを作成する ===== 上記のように、リストは角括弧[]で要素を括ることで作成できるが、list関数を使用してリストを作成する方法もある。<br> <syntaxhighlight lang="python"> x = list() y = list("python") print(x) print(y) # 出力 [] ['P', 'y', 't', 'h', 'o', 'n'] </syntaxhighlight> <br> ===== インデックスを指定しリストの要素を取り出す ===== インデックスを使用して、リストから要素を取り出すには、その中に取り出したいインデックスを指定する。<br> <syntaxhighlight lang="python"> a = ["a", "b", "c", "d", "e"] print(a[0]) print(a[1]) print(a[-1]) print(a[-2]) # 出力 a b e d </syntaxhighlight> <br> ===== リストのスライス ===== 要素のスライスも文字列と同様にできる。また、範囲指定して取り出すこともできる。<br> <syntaxhighlight lang="python"> a = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"] print(a[0:3]) print(a[:3]) print(a[6:]) print(a[:]) print(a[::2] print(a[::-2]) # 出力 ['a', 'b', 'c'] ['a', 'b', 'c'] ['g'. 'h', 'i', 'j'] ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] ['a', 'c', 'e', 'g', 'i'] ['j', 'h', 'f', 'd', 'b'] </syntaxhighlight> <br> ===== リストのリスト – リストの入れ子 ===== リストには全ての型を入れることができるので、リストを入れ子構造で作成することもできる。<br> 以下のように、リストxとyは、それぞれ文字列と数字のリストになっている。<br> リストzは、数値、文字列、そしてリストx、yを要素に持つリストになっている。<br> <syntaxhighlight lang="python"> x = ["Twitter","Facebook","LINE"] y = [100, 200, 300] z = [1, 2, "apple", x, y] print(z) print(z[3]) print([4][0]) # 出力 [1, 2, 'apple', ['Twitter', 'Facebook', 'LINE'], [100, 200, 300]] ['Twitter', 'Facebook', 'LINE'] 100 </syntaxhighlight> <br> ===== リストの要素の削除 ===== 上記に続けて、delキーワードを使用してインデックスで指定した要素を削除する。<br> <syntaxhighlight lang="python"> x = ["Twitter","Facebook","LINE"] y = [100, 200, 300] z = [1, 2, "apple", x, y] del z[4][0] print(z) # 出力 [1, 2, 'apple', ['Twitter', 'Facebook', 'LINE'], [200, 300]] </syntaxhighlight> <br><br> == リストのメソッド(append関数 pop関数 count関数 sort関数など) == 上記のように、リストは角括弧[]で要素を囲んで作成した。また、インデックスを使用して抽出、スライスを行った。<br> リストには他にも様々なメソッドが用意されている。<br> ここでは、リストにおいて、より使用するメソッドについて扱う。<br> <br> ===== append関数で末尾に要素を追加する ===== リストに要素を加える方法として、append関数がある。<br> これを利用することで、リストの末尾に要素を1つずつ加えることができる。<br> <syntaxhighlight lang="python"> lang = ["C", "C++", "Java", "PHP", "Ruby"] lang.append("python") print(lang) # 出力 ['C', 'C++', 'Java', 'PHP', 'Ruby', 'Python'] </syntaxhighlight> <br> ===== extend関数でリストを結合する ===== 2つのリストを結合する場合は、extend関数を使用する。<br> また、+=演算子を使用して結合することもできる。<br> <syntaxhighlight lang="python"> l = [1, 2, 3] m = [10, 20, 30] l.extend(m) print(l) # 出力 [1, 2, 3, 10, 20, 30] </syntaxhighlight> <br> ===== insert関数で要素を追加する ===== insert関数を使用すれば、インデックスを使用してリスト中の指定の位置に要素を追加することができる。<br> インデックスの最初の要素は<code>0</code>から始まる。<br> <syntaxhighlight lang="python"> lang = ["C", "C++", "Java", "PHP", "Ruby"] lang.insert(2, "Python") print(lang) # 出力 ['C', 'C++', 'Python', 'Java', 'PHP', 'Ruby'] </syntaxhighlight> <br> ===== スライス機能 ===== 開始インデックスと終了インデックスを指定して、リストの指定した範囲の要素を別の要素と入れ替えることができるが、<br> 開始インデックスと終了インデックスに共に新しい要素を挿入するインデックスを指定することにより、要素を指定した位置に挿入することができる。<br> <br> 右辺に指定したリストを、リストの指定したインデックスの要素の前に挿入する。<br> <syntaxhighlight lang="python"> mylist = ["a", "b", "c"] addlist = ["d", "e"] # 別のリストををインデックス1の前に挿入 mylist[1:1] = addlist print(mylist) # 出力 ['a', 'd', 'e', 'b', 'c'] </syntaxhighlight> <br> ===== remove関数で要素を削除する ===== remove関数を使用すれば、削除したい要素のインデックスが不明でも、要素そのものを指定してリストから削除することができる。<br> <syntaxhighlight lang="python"> lang = ["C", "C++", "Java", "PHP", "Ruby"] lang.remove("Java") print(lang) # 出力 ['C', 'C++', 'PHP', 'Ruby'] </syntaxhighlight> <br> ===== pop関数で要素を取り出し削除する ===== pop関数を使用すれば、インデックスを指定して要素を取り出し削除することができる。<br> 以下の例では、インデックス2の要素をpop関数で削除している。<br> また、インデックスを指定せずにpop関数を実行する場合、末尾の要素が削除される。これは、pop(-1)と記述しても同様である。<br> <syntaxhighlight lang="python"> strnum = ["one", "two", "three", "four"] strnum.pop(2) print(strnum) strnum.pop() print(strnum) # 出力 ['one', 'two', 'four'] ['one', 'two'] </syntaxhighlight> <br> ===== index関数で要素の位置を調べる ===== リストの中のある要素が、どのインデックスにあるのかを調べるには、index関数を使用する。<br> <syntaxhighlight lang="python"> x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9] x.index(6) print(x) # 出力 5 </syntaxhighlight> <br> ===== in演算子で要素の有無を調べる ===== リストの中に要素が入っているかを調べるには、in演算子を使用する。<br> 要素が存在する場合はTrue、存在しない場合はFalseを返す。<br> <syntaxhighlight lang="python"> x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9] print(7 in x) print(8 in x) # 出力 True False </syntaxhighlight> <br> ===== sort関数、reverse関数で並び替える ===== リストの要素を並び替える場合は、昇順ならsort関数、降順ならreverse関数を使用する。<br> また、sort関数で降順ソートする場合は、reverseオプションにTrueを指定する。<br> sort関数およびreverse関数を使用すると、表示を並び替えるというのではなく、リスト自体の要素を並び替えて変更する。<br> <syntaxhighlight lang="python"> x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9] print(x.sort()) print(x.sort(reverse=True)) print(x.reverse()) # 出力 [1, 2, 3, 3, 4, 4, 4, 5, 5, 6, 7, 9] [9, 7, 6, 5, 5, 4, 4, 4, 3, 3, 2, 1] [1, 2, 3, 3, 4, 4, 4, 5, 5, 6, 7, 9] </syntaxhighlight> <br> ===== count関数で特定の要素の個数を数える ===== リスト内に特定のデータがいくつ格納されているか調べる場合は、count関数を使用する。<br> 以下の例では、4が3つ存在する。<br> <syntaxhighlight lang="python"> x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9] x.count(4) print(x) # 出力 3 </syntaxhighlight> <br> ===== split関数で分割した後、join関数で結合する ===== 文字列をセパレータで分割してリストに格納し、そのリストから再び文字列に結合する。<br> split関数で分割した後、再びjoin関数で結合する。<br> <br> 以下の例では、まず、セパレータをスペース(" ")で分割してリスト化した後、再びjoin関数で結合している。<br> <syntaxhighlight lang="python"> s = "I am playing with Python." list_split = s.split(" ") print(list_split) j = " ".join(list_split) print(j) # 出力 ['I', 'am', 'playing', 'with', 'Python.'] I am playing with Python. </syntaxhighlight> <br> ===== len関数で要素数を調べる ===== リストに含まれている要素の数を数えるにはlen関数を使用する。<br> <syntaxhighlight lang="python"> x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9] print(len(x)) # 出力 13 </syntaxhighlight> <br><br> == リストのコピーと注意点 == ===== 注意点 ===== リストをコピーする際に注意する点がある。<br> リストのコピーには、そのリストをコピーしたものがもう1つの独立したリストとして扱える形になったり、<br> コピーしてもコピー元のデータが変わるとコピー先のデータも変化するパターンがある。<br> <br> これは、メモリの内部的な参照先が同じデータであるか、独立したものであるかの違いがあるからである。<br> <br> ===== リストをコピーする ===== リストのコピーの方法はいくつか存在する。<br> <br> '''代入演算子(=)を使用してコピーする'''<br> 代入演算子を使用する場合、リストaとbは、メモリの同一のアドレスに格納されているデータを参照するので、<br> リストaの内容を変更するとリストbの内容も変化する。<br> <syntaxhighlight lang="python"> a = ["YouTube", "Instagram", "LINE"] b = a a[1] = "Twitter" print(a) print(b) # 出力 ['Youtube', 'Twitter', 'LINE'] ['Youtube', 'Twitter', 'LINE'] </syntaxhighlight> <br> また、リストaもbも同一のアドレスを参照しているかどうかは、id関数を使用して調べることができる。<br> <syntaxhighlight lang="python"> a = ["YouTube", "Instagram", "LINE"] b = a id(a) id(b) # 出力 4495475016 4495475016 </syntaxhighlight> <br> '''copy関数を使用してコピーする(list関数とスライスも含む)'''<br> コピーしたリストが同一のアドレスを参照するものではなく、独立した別のデータとして扱うには、copy関数を使用する。<br> また、同じことができるlist関数とスライス[:]も併せて使用する。<br> <syntaxhighlight lang="python"> a = ["YouTube", "Instagram", "LINE"] b = a.copy() a[1] = "Twitter" print(a) print(b) # 出力 ['YouTube', 'Twitter', 'LINE'] ['YouTube', 'Instagram', 'LINE'] </syntaxhighlight> <br> <syntaxhighlight lang="python"> a = ["YouTube", "Instagram", "LINE"] b = list(a) a[1] = "Twitter" print(a) print(b) # 出力 ['YouTube', 'Twitter', 'LINE'] ['YouTube', 'Instagram', 'LINE'] </syntaxhighlight> <br> <syntaxhighlight lang="python"> a = ["YouTube", "Instagram", "LINE"] b = a[:] a[1] = "Twitter" print(a) print(b) # 出力 ['YouTube', 'Twitter', 'LINE'] ['YouTube', 'Instagram', 'LINE'] </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:Python]]
Pythonの基礎 - リストの作成と操作
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse