2018年1月15日月曜日

[Python] リスト型

リスト型についてのメモです.

まずは,ターミナルでPythonを立ち上げます.
$ Python3

リストは[]括弧内に数字や文字列を配列の中に入れることです.
>>> l = [1, 20, 4, 50, 2, 1, 2]
>>> l
[1, 20, 4, 50, 2, 1, 2]

リストにはインデックスがあるので,以下のようにインデックスを指定してやるとその値が返ってきます.
>>> l[0]
1

リストのインデックスは0から振られるので,以下のようにインデックス 1 は2つ目の数字になります.
>>> l[1]
20

文字列の投稿でも説明がありますが,一番最後のインデックスを出力したい場合は,インデックスを -1 と指定します.
>>> l[-1]
2

インデックスを -2 と指定すると,最後から2番目の値が返ってきます.
>>> l[-2]
1

スライスも可能で,以下は0番目から2番目のひとつ前までを返すには以下のようにします.
>>> l[0:2]
[1, 20]

上記の記載は以下のようにして0を省略することも可能です.
>>> l[:2]
[1, 20]

以下の記載ではインデックス2から5のひとつ前(インデックス4)までを表示します.
>>> l[2:5]
[4, 50, 2]

インデックス2以降を表示するには以下のようにします.
>>> l[2:]
[4, 50, 2, 1, 2]

インデックスの指定で始めと最後のインデックスを省略すると全てのリストが返ってきます.
>>> l[:]
[1, 20, 4, 50, 2, 1, 2]

リストでもlength関数を使って要素数を調べることができます.
>>> len(l)
7

存在しないインデックスを指定するとエラーが返ってきます.
>>> l[100]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

type関数を使って型を調べることができます.
>>> type(l)
<class 'list'>

文字列をリストに変換することができます.
>>> list('abcdefg')
['a', 'b', 'c', 'd', 'e', 'f', 'g']

リストの中からいくつか飛ばしながら抽出するには,以下のようにします.以下の例は2つ飛ばしで表示する例です.
>>> n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> n[::2]
[1, 3, 5, 7, 9]
上記例で,::-1 としてやると,最後から順番に抽出します.
>>> n[::-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

ネストすることも可能です.以下の例ではxというリストの中にaとnというリストが入っています.
>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]

以下のように x[0]とすると最初のネストになっているリストが表示されます.
>>> x[0]
['a', 'b', 'c']
x[1]とすると次(2つ目)のリストが表示されます.
>>> x[1]
[1, 2, 3]

ネストになっているリスト内の要素を取り出したいときには,最初にネスト内のインデックスを,続いてその中のインデックスを指定します.
>>> x[0][1]
'b'
以下は,インデックス1(2つ目)のリスト内のインデックス2(3つ目)の要素を取り出した例です.
>>> x[1][2]
3
>>> 









0 件のコメント :

コメントを投稿