Developer

【Python独学】リストの作り方
2020.11.02
Lv1

【Python独学】リストの作り方

過去の掲載で学習した変数では「1つの変数に1つの値を格納」していましたが、
今回から掲載するリストは「1つの変数に複数の値を格納」することが可能です。
他の言語で言うところの「配列」に該当します。

※JavaやC#のリストとは異なるので注意してください。


リストとは

言葉で説明すると若干伝わりづらいので画像で。

↑のイメージのように複数の値を一つの変数に格納します。
こうしないと「月、火、水、木」の4つを格納するために4つの変数を用意しないといけなくなりますからね。。。

イメージの中に出てきている「月、火、水、木」それぞれを「要素」、
変数の中にいくつの値が格納されているか(イメージでは4つ)を「要素数」と呼びます。


リストの作り方

では早速リストを作ってみましょう!
いくつか作り方はありますので、まずはリストアップ。

  • 要素を直接入力してリストを作成する
  • 要素を変数で指定してリストを作成する
  • 同じ要素を持ったリストを作成する
  • 文字列からリストを作成する
  • 範囲を指定して要素を作成する
  • 空のリストを作成する

○要素を直接入力してリストを作成する

まずは基本の書き方。
変数名 = [要素1, 要素2, 要素3, ・・・]
このように右辺を[]で囲い「,」区切りで要素を記述していきます。

※「,」の後ろの半角スペースはあってもなくても問題ないですが、あったほうが少しだけ見やすくなります。

では先程のイメージを実際に書いてみましょう。

weekDay = ["月", "火", "水", "木"]    
print(weekDay)
C:\Python> python list_sample1.py
[‘月’, ‘火’, ‘水’, ‘木’]

もちろん文字列だけではなく数値も使用可能です。

number = [100, 200, 300, 400, 500]    
print(number)
C:\Python> python list_sample2.py
[100, 200, 300, 400, 500]

○要素を変数で指定してリストを作成する

次は既に定義済みの変数を使用してリストを作成してみましょう。
基本の書き方は先程と同様です。

mon = "月"
tue = "火"
wed = "水"
thu = "木"

weekDay2 = [ mon, tue, wed, thu ]    
print(weekDay2)
C:\Python> python list_sample3.py
[‘月’, ‘火’, ‘水’, ‘木’]

このように先程と同様の結果を得ることができます。
ただし、変数を使用する場合一点だけ注意することがあります。

「リストを作成した後変数の中身を変更したとしても、その変数を使用した要素は変わらない」
ということです。

mon = "月"
tue = "火"
wed = "水"
thu = "木"

weekDay3 = [ mon, tue, wed, thu ]
print(weekDay3)

mon = "日"      #monの値を日に変えても。。。。
print(weekDay3) #リストの中身は変わりません
print(mon)      #※もちろんmonの中身は変わっています。
C:\Python> python list_sample4.py

[‘月’, ‘火’, ‘水’, ‘木’]
[‘月’, ‘火’, ‘水’, ‘木’]

おまけ

リストを作成する際に今まで紹介した要素を混ぜて作成することも可能です。

var="変数"

mix_array = [ var, "文字列", 123 ] 
print(mix_array)
C:\Python> python list_sample5.py
[‘変数’, ‘文字列’, 123]

○同じ要素を持ったリストを作成する

今まで紹介したリストは各要素に異なる値を使用していましたが、同じ値を使用することも可能です。
その際は以下のように記載するとスマートに書くことができます。

var = '○'

repeat_num = [ 9 ] * 10       
repeat_string = [ "繰り返し" ] * 5 #文字列にも使える
repeat_var = [ var ] * 4         #もちろん変数でもOK
print(repeat_num)
print(repeat_string)
print(repeat_var)
C:\Python> python list_sample6.py

[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
[‘繰り返し’, ‘繰り返し’, ‘繰り返し’, ‘繰り返し’, ‘繰り返し’]
[‘○’, ‘○’, ‘○’, ‘○’]

○文字列からリストを作成する

Pythonで元々用意されているlist()という関数を使用することで文字列からリストを作成することが可能です。

week = '月火水木金土日'
week_array1 = list('日土金木水火月') #list()の引数に文字列を指定したパターン
week_array2 = list(week)            #文字列が格納された変数も指定可能です。

print(week_array1)
print(week_array2)
C:\Python> python list_sample7.py

[‘日’, ‘土’, ‘金’, ‘木’, ‘水’, ‘火’, ‘月’]
[‘月’, ‘火’, ‘水’, ‘木’, ‘金’, ‘土’, ‘日’]

○範囲を指定して要素を作成する

list()関数とrange()を組み合わせることで、連番のリストを作成することができます。

num1 = list(range(-3, 10)) #-3から10を超えない範囲で1ずつ増加

print(num1)
C:\Python> python list_sample8.py
[-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range()関数で増加値を変更すれば偶数/奇数のリストも簡単に作成できます。

even = list(range(0, 10, 2))
odd = list(range(1, 10, 2))

print(even)
print(odd)
C:\Python> python list_sample9.py

[0, 2, 4, 6, 8]
[1, 3, 5, 7, 9]

○空のリストを作成する

リストを先に準備しておいて後から要素を追加したい時などに使用します。

empty = list()

print(empty)
C:\Python> python list_sample10.py
[]

まとめ

リストとは・・・
複数の値を一つの変数に格納したもの。
色々な型を同時に格納することができる。


確認問題

1.十二支が格納されたリストを作成してみましょう。
2.50から始まり5ずつ増える100までの数字を格納するリストを作成してみましょう。

連載目次

独学で学ぶ Pythonプログラミング 連載目次