Pythonの内包表記

Pythonには普通のfor文よりもシンプルで便利な内包表記という書き方もあります。

最初は難しく感じるかもしれないですが、マスターすればとても便利!

ということで、今回はfor文とも比較しながら内包表記について解説していきます。

内包表記とは?

リストや辞書などのオブジェクトにループ処理をした結果を新たなリストや辞書に格納する際に利用されます。

内包表記のメリット
  • 1行で書ける
  • 処理が速い

 

リスト内包表記

例:0~4の整数が入ったリストから二乗にしたリストを作る

①for文

square = [ ]
for i in range(5):
    square.append(i * i)
print(square)

 

出力結果

# [0, 1, 4, 9, 16]

 

②内包表記

square = [i * i for i in range(5)]
print(square)

 

出力結果

# [0, 1, 4, 9, 16]

 

for文だと、

①リストを宣言する

②ループを回す

③ループの中でappendする

これだけで3行になってしまいますが、内包表記だと、

ループの中で処理したい式を先に書いて[ ]で 囲うだけで、シンプルです。

 

辞書内包表記

例:2つのリストから県と県庁所在地を紐づける辞書を作る

#県
prefecture = ["神奈川", "愛知", "兵庫"]
#県庁所在地
city = ["横浜", "名古屋", "神戸"]

d = {key : value for key, value in zip(prefecture, city)}
print(d)

 

出力結果

{"神奈川": "横浜",
 "愛知": "名古屋",
 "兵庫": "神戸"}

 

zip関数は複数リストのインデックスを同時に取得するのによく使われます。

 

内包表記とif文の組み合わせ

for文の中でif文が使われることはよくありますが、内包表記とif文も組み合わせて使うことができます。

・if文だけのとき

①for文

half = [ ]
for i in range(10):
    if i % 2 == 0:
        half.append(i)
print(half)

 

出力結果

#[0, 2, 4, 6, 8]

 

②内包表記

half = [i for i in range(10) if i % 2 == 0]
print(half)

 

出力結果

#[0, 2, 4, 6, 8]

 

 

・if-else文のとき

①for文

half = [ ]
for i in range(10):
    if i % 2 == 0:
        half.append(i)
    else:
        half.append("奇数")
print(half)

 

出力結果

# [0, "奇数", 2, "奇数", 4, "奇数", 6, "奇数", 8 ,"奇数"]

 

②内包表記

half = [i if i % 2 == 0 else "奇数" for i in range(10)]
print(half)

 

出力結果

# [0, "奇数", 2, "奇数", 4, "奇数", 6, "奇数", 8 ,"奇数"]

ifだけのときとは書く位置が違います。

 

まとめ

内包表記の基本的な書き方について解説しました。

ぜひマスターして分かりやすいコードが書けるようになりましょう!

VirtualBoxにmacOS Big Surをインストールする方法

最終目標:WindowsのPCでiPhoneアプリを開発

そのための準備段階として、仮想環境にmacOS Big Surをインストールする手順を紹介します。

 

VirtualBoxをインストールする

VirtualBoxとは使用しているPCに仮想環境を構築し、他のOSをインストールできるソフトです。

iPhoneアプリ開発にはmacOSが必要なため、VirtualBoxをインストールします。

 

VirtualBoxのダウンロードは以下のサイトにアクセス↓

www.virtualbox.org

 

Windows hostsを選択。

exeファイルがダウンロードされます。

 

ダウンロードしたexeファイルを開きます。

 

デフォルトのままNext>をクリック。

 

 

Yesをクリック。

 

Installをクリック。

 

インストール完了。Finishをクリック。

 

macOS Big SurのISOイメージをダウンロードする

こちらからダウンロードしました。

 

仮想マシンの作成

VirtualBoxを起動し、新規をクリック。

 

名前はなんでもいいです。

タイプ:「Mac OS X」、バージョン:「Mac OS X(64-bit)」に設定し、次へ。

 




仮想マシンに割り当てるメモリサイズを設定します。

8GB(8192MB)に設定して作成。

 

ファイルの場所は十分な空き容量(120GBくらい)がある場所を選択。

今回ファイルサイズは100GBにしました。

ハードディスクのファイルタイプはVHD、物理ハードディスクにあるストレージは可変サイズにします。

 

仮想マシンの設定

設定をクリック。

 

システムをクリックし、フロッピーのチェックを外します。

メインメモリーは緑の範囲内で。

 

プロセッサータブのプロセッサー数(2以上)を設定します。

 

次はディスプレイを選択。

ビデオメモリーを128MBに設定。

 

ストレージを選択し、ストレージデバイスの空をクリック。

右端のディスクのアイコンをクリックし、ディスクファイルを選択をクリック。

 

②でダウンロードしたisoファイルを選択してください。

 

選択したisoファイルが表示されます。OK をクリック。

 

ここまで出来たら一旦VirtualBoxを終了してください。

 

⑤コードの実行

コマンドプロンプト管理者として実行で起動。

以下のコードをメモ帳にコピペして一行ずつ実行してください。

MacOS Big Sur」の部分は自分でつけた仮想マシンの名前に置換してください。

cd "C:\Program Files\Oracle\VirtualBox\" VBoxManage.exe modifyvm "MacOS Big Sur" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
VBoxManage setextradata "MacOS Big Sur" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac19,1"
VBoxManage setextradata "MacOS Big Sur" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
VBoxManage setextradata "MacOS Big Sur" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Mac-AA95B1DDAB278B95"
VBoxManage setextradata "MacOS Big Sur" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VBoxManage setextradata "MacOS Big Sur" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1

 

⑥Big Surのインストール

VirtualBoxを再度起動し、仮想マシンを選択して起動をクリック。

 

りんごマークが表示されればOK。

初めて起動する場合、数分かかります。

 

言語選択画面が出てくるので日本語を選択。

 

ディスクユーティリティを選択

 

VBOX HARDDISK Mediaを選択し、右上の消去をクリック。

 

消去が完了すると空のディスク(名称未設定)が作成されます。

左上のディスクユーティリティをクリックして終了する。



macOS Big Surインストールをクリック

 

進めていくとディスクを選択する画面になり、先ほど作成された空のディスクが表示されます。

空のディスクを選択して続けるをクリックします。

 

ディスクがインストールされます。結構時間かかります。

 

この後はお好みでカスタマイズしていって完了!

 

難しくはないけど手順が多く時間がかかりました。

これでiPhoneアプリ開発へ一歩前進したのでよかったです。