Python3 – 内包表記

基本形

リスト/タプルからの要素の取り出し

リスト/タプルの要素を順に取り出したリストを返す。

range()を使ったリストの生成

要素の演算

要素に対して順次同じ演算を施す。

floatの要素

小数部分を持った数値を要素とする方法。

ifの使用

抽出する要素の条件の指定

後置if文で要素が条件に合致した場合のみ値に送ることができる。ただしelseは使えない。

抽出した要素の条件による値の選択

値を三項演算子にすることで、取り出された要素の条件によって値を変えることができる。

複数のループ

複数リストの同時ループ

複数のリストを同時に回すときは、2つの変数に対応するリストにzip()を使う。

多重ループ

多重ループの以下の2つの違いを押さえておく。

まず2つのforを連続させた場合。

次にforを[]で囲んだ場合。

 

入れ子のコレクションへのアクセス

入れ子になったリストなどの要素へのアクセスは、一時変数を使って多重ループ。

多重配列の作成

多重配列の作成は、内側の要素から考えていくとわかりやすい。

内包表記ではないが、以下の記法でも同じ結果を得る。

応用

要素数が増減する多重配列

要素数が順次増減する配列の例。内側のリストの終値=長さを変数として、その変数を外側のループで回している。

2つのリストの交互結合

2つのリストの要素を交互に結合する。たとえば[1, 3, 5]と[2, 4, 6]から[1, 2, 3, 4, 5, 6]を生成。

  1. 各リストから1つずつ要素を取り出し、それらを要素とするリストを作成
    • [[x, y] for x, y in zip([1, 3, 5], [2, 4, 6])]
      -> [[1, 2], [3, 4], [5, 6]]
  2. その結果から各要素リストをsublistとして取り出す
  3. 各サブリストから順次要素を取り出して、全体リストの要素とする

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です