データ分析で必須のPython基礎。型・コレクション・制御構文を最低限押さえます。
Pythonって初心者でも使えるって聞くけど、あたし何から始めればいい?
まずはデータ型とコレクションと制御構文。 これがあれば大体読めるようになるわ。
補足すると、基本データ型はint(整数)、float(小数)、str(文字列)、bool(真偽値)。 コレクションはlist(リスト)、dict(辞書)、tuple(タプル)、set(集合)ね。
# 基本データ型
age = 25 # int
price = 1980.5 # float
name = 'たかし' # str
is_member = True # bool
# コレクション
scores = [80, 92, 75, 88] # list (順序あり、変更可)
user = {'name': 'たかし', 'age': 25} # dict (キー値ペア)
rgb = (255, 128, 0) # tuple (順序あり、変更不可)
tags = {'data', 'science'} # set (重複なし、順序なし)
# リスト操作
scores.append(95) # 末尾追加
first = scores[0] # インデックス
subset = scores[1:3] # スライス
n = len(scores) # 要素数
# 辞書操作
user['email'] = 'a@b.com' # キー追加・更新
name = user.get('name', '不明') # キー取得(なければデフォルト)
list と tuple は何が違うんですかぁ?
list は変更可(append, removeなど)、tuple は変更不可。 不変だからキーや関数引数として安全に使える。 高速で省メモリなのも特徴。
辞書って便利だね! キーで一発で取り出せるじゃん。
そうそう、データの構造化に強いのよ。 制御構文も基本を押さえましょう。
# 制御構文
for score in scores:
if score >= 80:
print(f'合格: {score}')
else:
print(f'不合格: {score}')
# リスト内包表記 (頻出パターン)
passed = [s for s in scores if s >= 80]
doubled = [s * 2 for s in scores]
# 関数定義
def calc_grade(score):
if score >= 90:
return 'A'
elif score >= 80:
return 'B'
return 'C'
grades = [calc_grade(s) for s in scores]
リスト内包表記って便利ですねぇ♪ for を1行で書けるの素敵♪
ええ、Pythonらしい記法ね。 速度も普通のforループより速いし、DS検定★でも頻出のコード読解パターンよ。
確認クイズ
次のPythonコードの結果として正しいのはどれか。 result = [x*2 for x in [1,2,3,4] if x % 2 == 0]
- [2, 4, 6, 8]
- [4, 8]
- [2, 4]
- [1, 3]
こたえを見る
正解: 2. [4, 8]
[4, 8]。 [1,2,3,4]の中で偶数(x%2==0)のみ→[2,4]、それを2倍→[4,8]。 リスト内包表記は条件で絞り込みつつ変換できる便利な記法です。