Pythonのリストの加算と乗算の検証
はじめに
Pythonのリストでは、リスト同士の加算または乗算で要素の追加が可能です。
では、加算または乗算するとどうなるのか、検証したいと思います。
なお、Pythonではリスト同士の減算と除算はPythonではサポートしていません。試したところ、以下のエラーが出ました。
TypeError: unsupported operand type(s) for -: 'list' and 'list' 直訳: -: 'list'および 'list'のサポートされていないオペランドタイプ
ますは、リストの基本をおさらいします。
リストとは
データの集合で、変更可能かつ、順序がある反復可能なデータ型です。
リストの生成
リストを生成するには、以下のとおり変数に値を代入します。
変数 = [要素1, 要素2, 要素3, ・・・]
例)
list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(list_a)
出力結果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
では、基本をおさらいしたところで、さっそく検証してみましょう。
1次元リストの検証
1次元リスト同士でリストを加算
list_a = [1, 2] list_b = [3, 4] print(list_a + list_b)
出力結果:[1, 2, 3, 4]
単純に要素が追加されて、2つの1次元リストが1つになりました。
では、累算代入演算子を使って加算するとどうなるでしょうか。
list_a = [1, 2] list_b = [3, 4] list_a += list_b print(list_a)
出力結果:[1, 2, 3, 4]
変数list_aに変数list_bの要素が追加されました。
1次元リストを乗算
list_a = [1, 2]*2 print(list_a)
出力結果:[1, 2, 1, 2]
変数list_aの要素が繰り返され、要素数が2倍になりました。
1次元リストの検証結果
加算または乗算することで、1次元リストの要素数が増えます。
2次元リストの検証
2次元リスト同士でリストを加算
list_a = [[1, 2]] list_b = [[3, 4]] print(list_a + list_b)
出力結果:[[1, 2], [3, 4]]
単純に要素が追加されて、2つの2次元リストが1つになりました。
では、累算代入演算子を使って加算するとどうなるでしょうか。
list_a = [[1, 2]] list_b = [[3, 4]] list_a += list_b print(list_a)
出力結果:[[1, 2], [3, 4]]
こちらも単純に、変数list_aに変数list_bの要素が追加されました。
2次元リストを乗算
list_a = [[1, 2]]*2 print(list_a)
出力結果:[[1, 2], [1, 2]]
2次元リストのまま変数list_aの要素が繰り返され、要素数が2倍になりました。
2次元リストの検証結果
加算または乗算することで、2次元リストの要素数が2次元リストのまま増えます。
1次元リストと2次元リストの組み合わせの場合を検証
1次元リストと2次元リストを加算
list_a = [[1, 2]] list_b = [3, 4] print(list_a + list_b)
出力結果:[[1, 2], 3, 4]
リストは1つにまとまったものの、変数list_aの部分は2次元リスト、list_bの部分は1次元リストという結果になりました。
では、累算代入演算子を使って加算するとどうなるでしょうか。
list_a = [[1, 2]] list_b = [3, 4] list_a += list_b print(list_a)
出力結果:[[1, 2], 3, 4]
元の変数list_aの部分は2次元リストで、追加されたlist_bの部分は1次元リストのままという結果になりました。
1次元リストと2次元リストの組み合わせの場合の検証結果
加算または乗算することで、リストを1つにすることはできますが、2次元リストの部分は2次元リストのまま、1次元リストの部分は1次元リストのまま要素数が増えます。
おわりに
検証結果は、おおよそ想定どおりでした。
ただ、リストの加算または乗算のパターンを知ることで、リストの操作がしやすくなるので、検証する価値はありました。
ほかのデータの集合でも検証すると面白いかもしれませんね!