価格あたりのカロリーが高い「マクドナルド（マック）」のハンバーガーランキングをpythonで集計してみた

<font　color="white">[この記事](https://saltiga.hatenablog.com/entry/2019/11/04/151859)</font>も参考にしてください。
## <a  id="index"  href="#index">目次</a>
* [マクドナルド（マック）で一番「得」な商品の定義](#section1)
* [調査方法](#section2)
* [結果（値段あたりのカロリーランキング）](#section3)
* [結局、コスパ上位のハンバーガーは？](#section4)
* [まとめ](#section5)


# <a  id="section1"  href="#section1">マクドナルド（マック）で一番「得」な商品の定義</a>

昼飯にとって最も重要なのは「コスパ」＝「値段あたりのカロリー」です。

本当は小麦粉からすいとん等を作るのが一番ですが、外食を余儀なくされる機会も多いと思います。

代表的な良コスパ外食チェーン、「マクドナルド」でコスパの高い商品を調査してみました。

### 参考

* 価格あたりのカロリーが高い「マクドナルド（マック）」のハンバーガーランキング
* 
https://saltiga.hatenablog.com/entry/2019/11/04/151859

https://saltiga.hatenablog.com/entry/2019/11/04/151658


# <a  id="section2"  href="#section２">調査方法</a>

1. マクドナルドの公式サイトから、メニューと価格一覧を取得

* 公式サイト　[http://www.mcdonalds.co.jp/menu/burger/](http://www.mcdonalds.co.jp/menu/burger/)
* 適当にhtmlタグなどを処理して整形する

```{bash}
wget http://www.mcdonalds.co.jp/menu/burger/ -O - | ¥
grep -e price -e ly-mod-menu-name | ¥
grep -v ly-mod-menu-priceset | ¥
sed -e 's/<[^>]*>//g' | ¥
awk '$1~/¥.*/&&a==1{print $1; a = 0}$1!~/¥.*/{print $1; a =1}' | ¥
paste - -  > price.txt
```

2. 同様にカロリーも取得

* 公式サイト　[http://www.mcdonalds.co.jp/quality/allergy_Nutrition/nutrient2.php?id=1](http://www.mcdonalds.co.jp/quality/allergy_Nutrition/nutrient2.php?id=1)

```{bash}
wget -O - http://www.mcdonalds.co.jp/quality/allergy_Nutrition/nutrient2.php?id=1 | ¥
grep -A3 menu_info | ¥
sed -e 's/<[^>]*>//g' | ¥
awk '{print $1}' | ¥
awk '$0' | ¥
paste - - - - 
awk '{print $1, $3}'> cal.txt
```

3. 価格あたりのカロリーを計算

* 計算結果をソートした
* markdown できれいに表示できるようにする


```{python}
price = open('price.txt')
cal = open('cal.txt')
pri = price.read().split()
ca = cal.read().split()
pril = {}
call = {}

for i in range(len(ca)//2):
    call[ca[2*i]] = int(ca[2*i+1])
for i in range(len(pri)//2):
    pril[pri[2*i]] = int(pri[2*i+1].split("¥")[1])
cpp = {}
for i in pril:
    if i in call:
    cpp[i] = [str(call[i]/pril[i])+"円/kcal", str(pril[i])+"円", 
    str(call[i])+"kcal"]  
for i in cpp:
    print("|", i, "|", cpp[i][0], "|", cpp[i][1], "|", cpp[i][2], "|")
price.close()
cal.close()
```

# <a  id="section3"  href="#section3">結果（値段あたりのカロリーランキング）</a>



|  |  |  |  |
|---|---|---|---|
|ソーセージマフィン |3.590909090909091円/kcal |110円 |395kcal |
| チキンクリスプ | 3.1363636363636362円/kcal | 110円 | 345kcal |
| マックグリドル | 2.8円/kcal | 150円 | 420kcal |
| チキンクリスプマフィン | 2.6円/kcal | 140円 | 364kcal |
| 倍チキンクリスプ | 2.3714285714285714円/kcal | 210円 | 498kcal |
| ハンバーガー | 2.327272727272727円/kcal | 110円 | 256kcal |
| チーズバーガー | 2.192857142857143円/kcal | 140円 | 307kcal |
| チキチー(チキンチーズバーガー) | 2.155円/kcal | 200円 | 431kcal |
| 倍マクポ(倍ベーコンマックポーク) | 2.1466666666666665円/kcal | 300円 | 644kcal |
| マクポ(ベーコンマックポーク) | 2.1円/kcal | 200円 | 420kcal |
| メガマフィン | 1.9857142857142858円/kcal | 350円 | 695kcal |
| 倍チキチー(倍チキンチーズバーガー) | 1.9466666666666668円/kcal | 300円 | 584kcal |
| スパチキ(スパイシーチキンバーガー) | 1.945円/kcal | 200円 | 389kcal |
| エグチ(エッグチーズバーガー) | 1.935円/kcal | 200円 | 387kcal |
| ソーセージエッグマフィン | 1.9円/kcal | 250円 | 475kcal |
| 倍スパチキ(倍スパイシーチキンバーガー) | 1.8066666666666666円/kcal | 300円 | 542kcal |
| 倍ハンバーガー | 1.6952380952380952円/kcal | 210円 | 356kcal |
| 倍チーズバーガー | 1.6916666666666667円/kcal | 240円 | 406kcal |
| 倍てりやきマックバーガー | 1.6545454545454545円/kcal | 440円 | 728kcal |
| 倍てりやきチキンフィレオ | 1.6340425531914893円/kcal | 470円 | 768kcal |
| ビッグブレックファスト | 1.63円/kcal | 600円 | 978kcal |
| 倍エグチ(倍エッグチーズバーガー) | 1.62円/kcal | 300円 | 486kcal |
| エッグマックマフィン | 1.555円/kcal | 200円 | 311kcal |
| 倍チキンフィレオ | 1.541304347826087円/kcal | 460円 | 709kcal |
| てりやきマフィン | 1.5379310344827586円/kcal | 290円 | 446kcal |
| ベーコンエッグマックサンド | 1.495円/kcal | 200円 | 299kcal |
| 倍ダブルチーズバーガー | 1.4886363636363635円/kcal | 440円 | 655kcal |
| 親子てりやきマックバーガー | 1.4820512820512821円/kcal | 390円 | 578kcal |
| 倍ビッグマック | 1.4775510204081632円/kcal | 490円 | 724kcal |
| ビッグマック | 1.3461538461538463円/kcal | 390円 | 525kcal |
| てりやきチキンフィレオ | 1.345945945945946円/kcal | 370円 | 498kcal |
| ダブルチーズバーガー | 1.3441176470588236円/kcal | 340円 | 457kcal |
| チキンフィレオ | 1.2916666666666667円/kcal | 360円 | 465kcal |
| 旨辛てりやきマックバーガー | 1.2897435897435898円/kcal | 390円 | 503kcal |
| 倍グラン | 1.2142857142857142円/kcal | 490円 | 595kcal |
| 倍えびフィレオ | 1.1285714285714286円/kcal | 490円 | 553kcal |
| グラン | 1.1025641025641026円/kcal | 390円 | 430kcal |
| ホットケーキ | 1.0633333333333332円/kcal | 300円 | 319kcal |
| 倍フィレオフィッシュ | 1.040909090909091円/kcal | 440円 | 458kcal |
| ベーコンレタスバーガー | 1.038888888888889円/kcal | 360円 | 374kcal |
| 倍ベーコンレタスバーガー | 1.0282608695652173円/kcal | 460円 | 473kcal |
| えびフィレオ | 1.0128205128205128円/kcal | 390円 | 395kcal |
| フィレオフィッシュ | 1.0029411764705882円/kcal | 340円 | 341kcal |
| てりやきマックバーガー | 0.956円/kcal | 340円 | 478kcal |

* 円/kcalじゃなくてkcal/円です。書き間違えました
* てりやきマックバーガーは本当は340円で価格あたりのカロリーは1.4円です。公式サイトでなぜかテリヤキバーガーだけバリューセットの価格が表示されていたためです。

# <a  id="section4"  href="#section4">結局、コスパ上位のハンバーガーは？</a>

* 朝部門 
🥇 ソーセージマフィン
🥈 マックグリドル
🥉 チキンクリスプマフィン
 
* 昼部門 
🥇 チキンクリスプ
🥈 ハンバーガー
🥉 チーズバーガー


という結果になりました。
やはり低価格メニューは低付加価値で、高価格のビッグマックや魚介系バーガーはぼったくりということがよく見て取れます。

# <a  id="section5"  href="#section5"> まとめ</a>

マクドナルドで価格あたりで最大のカロリーを得るためには・・・

* 朝にお腹が空いているときは、ソーセージマフィンを食べられるだけ頼みましょう！！

* 昼間にお腹が空いているときは、チキンクリスプを食べられるだけ頼みましょう！！