Python list型
list型の定義、アクセス
list型は、pythonで扱う配列形式のデータ型。
任意の型のデータを、list型の配列に入れることが可能。
異なる型のデータを混在させて、1つのlist型に入れることが可能。
list型データにアクセスする場合、最初のデータは0番目として扱う。
# list型の定義 aaa = [1, 2, 3, 4, "東", "南", "西", "北"] print(aaa[0]) # 0番目のデータにアクセス # 1 print(aaa[3]) # 3番目のデータにアクセス # 4 print(aaa[-1]) # 最後から1番目のデータにアクセス # 北 print(aaa[-2]) # 最後から2番目のデータにアクセス # 西 aaa[2] = 10 # 2番目のデータを書き換え print(aaa) # [1, 2, 10, 4, '東', '南', '西', '北']
配列サイズの取得、配列データの追加と削除
len()関数で、配列サイズを取得できる。
.append()メソッド, .insert()メソッドで、配列データを追加できる。
.pop()メソッドで、配列データを削除できる。
aaa = ["東", "南", "西", "北"] print("サイズ=" + str(len(aaa)) + " " + str(aaa)) # サイズ=4 ['東', '南', '西', '北'] # 末尾に追加 aaa.append("白") print("サイズ=" + str(len(aaa)) + " " + str(aaa)) # サイズ=5 ['東', '南', '西', '北', '白'] # 2番目の手前に追加 ※先頭は0番目 aaa.insert(2, "發") print("サイズ=" + str(len(aaa)) + " " + str(aaa)) # サイズ=6 ['東', '南', '發', '西', '北', '白'] # 1番目を書き換え aaa[1] = "中" print("サイズ=" + str(len(aaa)) + " " + str(aaa)) # サイズ=6 ['東', '中', '發', '西', '北', '白'] # 3番目を削除 aaa.pop(3) print("サイズ=" + str(len(aaa)) + " " + str(aaa)) # サイズ=5 ['東', '中', '發', '北', '白'] # 末尾を削除 aaa.pop() print("サイズ=" + str(len(aaa)) + " " + str(aaa)) # サイズ=4 ['東', '中', '發', '北']
list型配列とlist型配列の結合
”+”演算子で、2つの配列を結合。
"+="演算子と.extend()メソッドは、同じ効果。
aaa = ["東", "南", "西", "北"] bbb = ["白", "發", "中"] # "+"演算子で結合 ccc = aaa + bbb print(ccc) # ['東', '南', '西', '北', '白', '發', '中'] # "+="演算子で結合 aaa += bbb print(aaa) # ['東', '南', '西', '北', '白', '發', '中'] # .extend()メソッドで結合 ※"+="演算子と同じ効果 ddd = bbb.extend(["一萬", "二萬", "三萬"]) print(bbb) # ['白', '發', '中', '一萬', '二萬', '三萬'] print(ddd) # None ※.exctend()メソッドの戻り値は、Noneなので注意
2次元配列
list型のデータを配列にしたlist型を作ることにより、2次元配列のデータが作成可能。
# 2次元配列のlist型の定義 aaa = [["一萬", "二萬", "三萬"], ["一筒", "二筒", "三筒"]] print(aaa[0][0]) # 0行0列のデータにアクセス # 一萬 print(aaa[1][2]) # 1行2列のデータにアクセス # 三筒
スライシング
スライシングとは、次のようにlist型配列の一部分を抽出して、別のlist型配列を作る機能のこと。
aaa = ["東", "南", "西", "北", "白", "發", "中"] # 2番目から5番目未満を抽出 ※先頭は0番目、5番目は含まない print(aaa[2:5]) # ['西', '北', '白'] # 2番目以降を抽出 print(aaa[2:]) # ['西', '北', '白', '發', '中'] # 5番目未満を抽出 print(aaa[:5]) # ['東', '南', '西', '北', '白'] # 2番目以降を2個おきに抽出 print(aaa[2::2]) # ['西', '白', '中'] # 最後から逆順に抽出 print(aaa[::-1]) # ['中', '發', '白', '北', '西', '南', '東'] # 逆順抽出で、次は何も抽出しない print(aaa[2:5:-1]) # [] # 逆順抽出で、5番目から2番目まで ※2番目を含まない print(aaa[5:2:-1]) # ['發', '白', '北']