毎日ちょっとPython ~ 5日目 ~
こんばんは。毎日ちょっとなのに一週間あいちゃった。
ちゃんとやっていかないとなぁとおもって今週からまたちゃんとやります。
では早速
リスト型
リストは複数の値を順番に並べた値です。(配列みたいなものかな
リストの中の値 → 要素
要素はカンマ区切り。
>>> [1,2,3]
[1, 2, 3]
>>> ['cat','bat','rat','elephant']
['cat', 'bat', 'rat', 'elephant']
>>> spam = ['cat','bat','rat','elephant']
>>> spam
['cat', 'bat', 'rat', 'elephant']
取り出し方はJSとかの配列と同じ。
>>> spam = ['cat','bat','rat','elephant']
>>> spam[0]
'cat'
>>> spam[3]
'elephant'
リストにリストを入れることもできます。
>>> spam = [['cat','bat'],[10,20,30,40,50]]
>>> spam[0]
['cat', 'bat']
>>> spam[1]
[10, 20, 30, 40, 50]
>>> spam[0][1]
'bat'
>>> spam[1][3]
40
負のインデックスも使えるそうです(正直使い道はないかな)
>>> spam = ['cat','bat','rat','elephant']
>>> spam[-1]
'elephant'
>>> spam[-3]
'bat'
値の変更も当然できます。
>>> spam = ['cat','bat','rat','elephant']
>>> spam[1] = 'aardvark'
>>> spam
['cat', 'aardvark', 'rat', 'elephant']
エラーの種類
リストのindexが実際のものよりも長くなった場合は、indexErrorというエラーが出ます。
浮動小数点でインデックスの指定もできないです
>>> spam = ['cat','bat','rat','elephant']
>>> spam[4]
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
spam[4]
IndexError: list index out of range
>>> spam[1.0]
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
spam[1.0]
TypeError: list indices must be integers or slices, not float
スライスを用いて部分リストを取得する
インデックスを用いるとリストから一つの値を取得できるのと同様に、スライスを用いると複数の値を取得できる。
spam[1:4]はリストにスライス(2つの整数)を指定したもの
第1の整数はスライスの開始インデックス。
第2の整数はスライスの終了を表します。
>>> spam = ['cat','bat','rat','elephant']
>>> spam[0:4]
['cat', 'bat', 'rat', 'elephant']
>>> spam[1:3]
['bat', 'rat']
>>> spam[0:-1]
['cat', 'bat', 'rat']
第1を省略すると0を指定したのと一緒
第2を省略すると末尾までのスライスになる
>>> spam = ['cat','bat','rat','elephant']
>>> spam[:2]
['cat', 'bat']
>>> spam[1:]
['bat', 'rat', 'elephant']
>>> spam[:]
['cat', 'bat', 'rat', 'elephant']
len()関数を用いてリストの長さを取得する
中の要素を数える関数があります。
>>> spam = ['cat','dog','moose']
>>> len(spam)
3
リストの連結とリストの複製
+記号や*記号で一気に増やすことができます
>>> [1,2,3] + ['A','B','C']
[1, 2, 3, 'A', 'B', 'C']
>>> ['A','B','C']*3
['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C']
>>> spam = [1,2,3]
>>> spam = spam + ['A','B','C']
>>> spam
[1, 2, 3, 'A', 'B', 'C']
del文を用いてリストから値を削除する
>>> spam = ['cat','bat','rat','elephant']
>>> del spam[2]
>>> spam
['cat', 'bat', 'elephant']
今日はここまで(30分くらい)