リストとは、よく配列という風にも言われる型で、[1, 2, 3, 4, 5]このような形で複数の値が順に格納されているものをいいます。
ここで学習すること
- 型としてのリスト
- リストへの変換
- リストを文字列に変換
説明
型としてのリスト
リストに格納できるのは、intなどの数値以外にstr、それにそれらを混ぜることも出来ますし、何だったらリストも入れられちゃいます。
list01.py
#!/usr/bin/env python3.8 list1 = [1, 2, 3, 4, 5] print(list1) list2 = ["a", "b", "c"] print(list2) list3 = [1, "b", 3, "d"] print(list3) list4 = [list1, list2] print(list4)
実行
$ python list01.py [1, 2, 3, 4, 5] ['a', 'b', 'c'] [1, 'b', 3, 'd'] [[1, 2, 3, 4, 5], ['a', 'b', 'c']] $
入れたものを処理するときは主にfor-inを使います。それから3番目の要素にアクセスしたいときは、以下のように最初を0番目として数えて2と指定することでアクセスできます。範囲を指定したり、リスト同士を足すことも出来ます。
list02.py
#!/usr/bin/env python3.8 list1 = [1, 2, 3, 4, 5] for val in list1: print(val) print("--") print(list1[2]) print(list1[1:3]) list2 = [6, 7, 8] print(list1 + list2)
実行
$ python list02.py 1 2 3 4 5 -- 3 [2, 3] [1, 2, 3, 4, 5, 6, 7, 8] $
その他、マイナスを指定して後から数えたりもできます。
リストへの変換
最もあると思われるのは、”AAA,BBB,CCC”にようにカンマ区切りになっている文字列を受け取っていて、それをリストにしたいなどです。その他、リストからリストの変換としてリスト内包などもあります。
list03.py
#!/usr/bin/env python3.8 x = "AAA,BBB,CCC" print(x.split(",")) int_list = [1, 2, 3, 4, 5] str_list = [str(val) for val in int_list] print(int_list) print(str_list)
$ python list03.py ['AAA', 'BBB', 'CCC'] [1, 2, 3, 4, 5] ['1', '2', '3', '4', '5'] $
リストを文字列へ変換
他の型の説明ではこの向きの説明はしていないので、ちょっと脱線なのですが、よく使う上にとても特徴的なやり方なので、ここでご紹介します。
リストをカンマで連結して1つの文字列にするというものです。
list04.py
#!/usr/bin/env python3.8 list = ["aaa", "bbb", "ccc"] list_str = ",".join(list) print(list_str)
実行
$ python list04.py aaa,bbb,ccc $
str側のメソッドにjoin()というものがあり、その引数にリストを渡すというものです。気分的にはlist側のメソッドにjoin()があって、その引数にカンマを渡したい気分ですが…