「Pythonの基礎 - リストの作成と操作」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == ここでは、リスト型のデータを扱う。<br> リストは、0個以上の複数のデータを一覧にして管理することができる。<br>…」
 
編集の要約なし
 
(同じ利用者による、間の2版が非表示)
10行目: 10行目:
Pythonのリストを作成するには、角括弧[]を使用する。
Pythonのリストを作成するには、角括弧[]を使用する。
この中に、カンマを使用して要素を区切って記述する。
この中に、カンマを使用して要素を区切って記述する。
  <source lang="python">
  <syntaxhighlight lang="python">
  a = [1, 2, 3, 4, 5]
  a = [1, 2, 3, 4, 5]
  b = [6, 7, 8, "apple", "python"]
  b = [6, 7, 8, "apple", "python"]
  </source>
  </syntaxhighlight>
<br>
<br>
===== list関数でリストを作成する =====
===== list関数でリストを作成する =====
上記のように、リストは角括弧[]で要素を括ることで作成できるが、list関数を使用してリストを作成する方法もある。<br>
上記のように、リストは角括弧[]で要素を括ることで作成できるが、list関数を使用してリストを作成する方法もある。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  x = list()
  x = list()
  y = list("python")
  y = list("python")
26行目: 26行目:
  []
  []
  ['P', 'y', 't', 'h', 'o', 'n']
  ['P', 'y', 't', 'h', 'o', 'n']
  </source>
  </syntaxhighlight>
<br>
<br>
===== インデックスを指定しリストの要素を取り出す =====
===== インデックスを指定しリストの要素を取り出す =====
インデックスを使用して、リストから要素を取り出すには、その中に取り出したいインデックスを指定する。<br>
インデックスを使用して、リストから要素を取り出すには、その中に取り出したいインデックスを指定する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  a = ["a", "b", "c", "d", "e"]
  a = ["a", "b", "c", "d", "e"]
  print(a[0])
  print(a[0])
42行目: 42行目:
  e
  e
  d
  d
  </source>
  </syntaxhighlight>
<br>
<br>
===== リストのスライス =====
===== リストのスライス =====
要素のスライスも文字列と同様にできる。また、範囲指定して取り出すこともできる。<br>
要素のスライスも文字列と同様にできる。また、範囲指定して取り出すこともできる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  a = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
  a = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
  print(a[0:3])
  print(a[0:3])
62行目: 62行目:
  ['a', 'c', 'e', 'g', 'i']
  ['a', 'c', 'e', 'g', 'i']
  ['j', 'h', 'f', 'd', 'b']
  ['j', 'h', 'f', 'd', 'b']
  </source>
  </syntaxhighlight>
<br>
<br>
===== リストのリスト – リストの入れ子 =====
===== リストのリスト – リストの入れ子 =====
68行目: 68行目:
以下のように、リストxとyは、それぞれ文字列と数字のリストになっている。<br>
以下のように、リストxとyは、それぞれ文字列と数字のリストになっている。<br>
リストzは、数値、文字列、そしてリストx、yを要素に持つリストになっている。<br>
リストzは、数値、文字列、そしてリストx、yを要素に持つリストになっている。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  x = ["Twitter","Facebook","LINE"]
  x = ["Twitter","Facebook","LINE"]
  y = [100, 200, 300]
  y = [100, 200, 300]
81行目: 81行目:
  ['Twitter', 'Facebook', 'LINE']
  ['Twitter', 'Facebook', 'LINE']
  100
  100
  </source>
  </syntaxhighlight>
<br>
<br>
===== リストの要素の削除 =====
===== リストの要素の削除 =====
上記に続けて、delキーワードを使用してインデックスで指定した要素を削除する。<br>
上記に続けて、delキーワードを使用してインデックスで指定した要素を削除する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  x = ["Twitter","Facebook","LINE"]
  x = ["Twitter","Facebook","LINE"]
  y = [100, 200, 300]
  y = [100, 200, 300]
96行目: 96行目:
  # 出力
  # 出力
  [1, 2, 'apple', ['Twitter', 'Facebook', 'LINE'], [200, 300]]
  [1, 2, 'apple', ['Twitter', 'Facebook', 'LINE'], [200, 300]]
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


107行目: 107行目:
リストに要素を加える方法として、append関数がある。<br>
リストに要素を加える方法として、append関数がある。<br>
これを利用することで、リストの末尾に要素を1つずつ加えることができる。<br>
これを利用することで、リストの末尾に要素を1つずつ加えることができる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  lang = ["C", "C++", "Java", "PHP", "Ruby"]
  lang = ["C", "C++", "Java", "PHP", "Ruby"]
  lang.append("python")
  lang.append("python")
114行目: 114行目:
  # 出力
  # 出力
  ['C', 'C++', 'Java', 'PHP', 'Ruby', 'Python']
  ['C', 'C++', 'Java', 'PHP', 'Ruby', 'Python']
  </source>
  </syntaxhighlight>
<br>
<br>
===== extend関数でリストを結合する =====
===== extend関数でリストを結合する =====
2つのリストを結合する場合は、extend関数を使用する。<br>
2つのリストを結合する場合は、extend関数を使用する。<br>
また、+=演算子を使用して結合することもできる。<br>
また、+=演算子を使用して結合することもできる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  l = [1, 2, 3]
  l = [1, 2, 3]
  m = [10, 20, 30]
  m = [10, 20, 30]
127行目: 127行目:
  # 出力
  # 出力
  [1, 2, 3, 10, 20, 30]
  [1, 2, 3, 10, 20, 30]
  </source>
  </syntaxhighlight>
<br>
<br>
===== insert関数で要素を追加する =====
===== insert関数で要素を追加する =====
insert関数を使用すれば、インデックスを使用してリスト中の指定の位置に要素を追加することができる。<br>
insert関数を使用すれば、インデックスを使用してリスト中の指定の位置に要素を追加することができる。<br>
  <source lang="python">
インデックスの最初の要素は<code>0</code>から始まる。<br>
  <syntaxhighlight lang="python">
  lang = ["C", "C++", "Java", "PHP", "Ruby"]
  lang = ["C", "C++", "Java", "PHP", "Ruby"]
  lang.insert(2, "Python")
  lang.insert(2, "Python")
138行目: 139行目:
  # 出力
  # 出力
  ['C', 'C++', 'Python', 'Java', 'PHP', 'Ruby']
  ['C', 'C++', 'Python', 'Java', 'PHP', 'Ruby']
  </source>
  </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>
<br>
===== remove関数で要素を削除する =====
===== remove関数で要素を削除する =====
remove関数を使用すれば、削除したい要素のインデックスが不明でも、要素そのものを指定してリストから削除することができる。<br>
remove関数を使用すれば、削除したい要素のインデックスが不明でも、要素そのものを指定してリストから削除することができる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  lang = ["C", "C++", "Java", "PHP", "Ruby"]
  lang = ["C", "C++", "Java", "PHP", "Ruby"]
  lang.remove("Java")
  lang.remove("Java")
149行目: 167行目:
  # 出力
  # 出力
  ['C', 'C++', 'PHP', 'Ruby']
  ['C', 'C++', 'PHP', 'Ruby']
  </source>
  </syntaxhighlight>
<br>
<br>
===== pop関数で要素を取り出し削除する =====
===== pop関数で要素を取り出し削除する =====
155行目: 173行目:
以下の例では、インデックス2の要素をpop関数で削除している。<br>
以下の例では、インデックス2の要素をpop関数で削除している。<br>
また、インデックスを指定せずにpop関数を実行する場合、末尾の要素が削除される。これは、pop(-1)と記述しても同様である。<br>
また、インデックスを指定せずにpop関数を実行する場合、末尾の要素が削除される。これは、pop(-1)と記述しても同様である。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  strnum = ["one", "two", "three", "four"]
  strnum = ["one", "two", "three", "four"]
  strnum.pop(2)
  strnum.pop(2)
166行目: 184行目:
  ['one', 'two', 'four']
  ['one', 'two', 'four']
  ['one', 'two']
  ['one', 'two']
  </source>
  </syntaxhighlight>
<br>
<br>
===== index関数で要素の位置を調べる =====
===== index関数で要素の位置を調べる =====
リストの中のある要素が、どのインデックスにあるのかを調べるには、index関数を使用する。<br>
リストの中のある要素が、どのインデックスにあるのかを調べるには、index関数を使用する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9]
  x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9]
  x.index(6)
  x.index(6)
177行目: 195行目:
  # 出力
  # 出力
  5
  5
  </source>
  </syntaxhighlight>
<br>
<br>
===== in演算子で要素の有無を調べる =====
===== in演算子で要素の有無を調べる =====
リストの中に要素が入っているかを調べるには、in演算子を使用する。<br>
リストの中に要素が入っているかを調べるには、in演算子を使用する。<br>
要素が存在する場合はTrue、存在しない場合はFalseを返す。<br>
要素が存在する場合はTrue、存在しない場合はFalseを返す。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9]
  x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9]
  print(7 in x)
  print(7 in x)
190行目: 208行目:
  True
  True
  False
  False
  </source>
  </syntaxhighlight>
<br>
<br>
===== sort関数、reverse関数で並び替える =====
===== sort関数、reverse関数で並び替える =====
196行目: 214行目:
また、sort関数で降順ソートする場合は、reverseオプションにTrueを指定する。<br>
また、sort関数で降順ソートする場合は、reverseオプションにTrueを指定する。<br>
sort関数およびreverse関数を使用すると、表示を並び替えるというのではなく、リスト自体の要素を並び替えて変更する。<br>
sort関数およびreverse関数を使用すると、表示を並び替えるというのではなく、リスト自体の要素を並び替えて変更する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9]
  x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9]
  print(x.sort())
  print(x.sort())
206行目: 224行目:
  [9, 7, 6, 5, 5, 4, 4, 4, 3, 3, 2, 1]
  [9, 7, 6, 5, 5, 4, 4, 4, 3, 3, 2, 1]
  [1, 2, 3, 3, 4, 4, 4, 5, 5, 6, 7, 9]
  [1, 2, 3, 3, 4, 4, 4, 5, 5, 6, 7, 9]
  </source>
  </syntaxhighlight>
<br>
<br>
===== count関数で特定の要素の個数を数える =====
===== count関数で特定の要素の個数を数える =====
リスト内に特定のデータがいくつ格納されているか調べる場合は、count関数を使用する。<br>
リスト内に特定のデータがいくつ格納されているか調べる場合は、count関数を使用する。<br>
以下の例では、4が3つ存在する。<br>
以下の例では、4が3つ存在する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9]
  x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9]
  x.count(4)
  x.count(4)
218行目: 236行目:
  # 出力
  # 出力
  3
  3
  </source>
  </syntaxhighlight>
<br>
<br>
===== split関数で分割した後、join関数で結合する =====
===== split関数で分割した後、join関数で結合する =====
225行目: 243行目:
<br>
<br>
以下の例では、まず、セパレータをスペース(" ")で分割してリスト化した後、再びjoin関数で結合している。<br>
以下の例では、まず、セパレータをスペース(" ")で分割してリスト化した後、再びjoin関数で結合している。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  s = "I am playing with Python."
  s = "I am playing with Python."
   
   
237行目: 255行目:
  ['I', 'am', 'playing', 'with', 'Python.']
  ['I', 'am', 'playing', 'with', 'Python.']
  I am playing with Python.
  I am playing with Python.
  </source>
  </syntaxhighlight>
<br>
<br>
===== len関数で要素数を調べる =====
===== len関数で要素数を調べる =====
リストに含まれている要素の数を数えるにはlen関数を使用する。<br>
リストに含まれている要素の数を数えるにはlen関数を使用する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9]
  x = [1, 4, 3, 4, 2, 6, 1, 4, 7, 3, 5, 5, 9]
  print(len(x))
  print(len(x))
247行目: 265行目:
  # 出力
  # 出力
  13
  13
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


264行目: 282行目:
代入演算子を使用する場合、リストaとbは、メモリの同一のアドレスに格納されているデータを参照するので、<br>
代入演算子を使用する場合、リストaとbは、メモリの同一のアドレスに格納されているデータを参照するので、<br>
リストaの内容を変更するとリストbの内容も変化する。<br>
リストaの内容を変更するとリストbの内容も変化する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  a = ["YouTube", "Instagram", "LINE"]
  a = ["YouTube", "Instagram", "LINE"]
  b = a
  b = a
274行目: 292行目:
  ['Youtube', 'Twitter', 'LINE']
  ['Youtube', 'Twitter', 'LINE']
  ['Youtube', 'Twitter', 'LINE']
  ['Youtube', 'Twitter', 'LINE']
  </source>
  </syntaxhighlight>
<br>
<br>
また、リストaもbも同一のアドレスを参照しているかどうかは、id関数を使用して調べることができる。<br>
また、リストaもbも同一のアドレスを参照しているかどうかは、id関数を使用して調べることができる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  a = ["YouTube", "Instagram", "LINE"]
  a = ["YouTube", "Instagram", "LINE"]
  b = a
  b = a
286行目: 304行目:
  4495475016
  4495475016
  4495475016
  4495475016
  </source>
  </syntaxhighlight>
<br>
<br>
'''copy関数を使用してコピーする(list関数とスライスも含む)'''<br>
'''copy関数を使用してコピーする(list関数とスライスも含む)'''<br>
コピーしたリストが同一のアドレスを参照するものではなく、独立した別のデータとして扱うには、copy関数を使用する。<br>
コピーしたリストが同一のアドレスを参照するものではなく、独立した別のデータとして扱うには、copy関数を使用する。<br>
また、同じことができるlist関数とスライス[:]も併せて使用する。<br>
また、同じことができるlist関数とスライス[:]も併せて使用する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  a = ["YouTube", "Instagram", "LINE"]
  a = ["YouTube", "Instagram", "LINE"]
  b = a.copy()
  b = a.copy()
301行目: 319行目:
  ['YouTube', 'Twitter', 'LINE']
  ['YouTube', 'Twitter', 'LINE']
  ['YouTube', 'Instagram', 'LINE']
  ['YouTube', 'Instagram', 'LINE']
  </source>
  </syntaxhighlight>
<br>
<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  a = ["YouTube", "Instagram", "LINE"]
  a = ["YouTube", "Instagram", "LINE"]
  b = list(a)
  b = list(a)
313行目: 331行目:
  ['YouTube', 'Twitter', 'LINE']
  ['YouTube', 'Twitter', 'LINE']
  ['YouTube', 'Instagram', 'LINE']
  ['YouTube', 'Instagram', 'LINE']
  </source>
  </syntaxhighlight>
<br>
<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  a = ["YouTube", "Instagram", "LINE"]
  a = ["YouTube", "Instagram", "LINE"]
  b = a[:]
  b = a[:]
325行目: 343行目:
  ['YouTube', 'Twitter', 'LINE']
  ['YouTube', 'Twitter', 'LINE']
  ['YouTube', 'Instagram', 'LINE']
  ['YouTube', 'Instagram', 'LINE']
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Python]]
[[カテゴリ:Python]]