みんPy(改訂版) 読書メモ Chapter 5
Chapter 5 組み込み型を使いこなす
文字列フォーマット
<文字列> % <タプル>
または <文字列> % <辞書>
でprintfスタイルの文字列のフォーマットが可能。
u"%d回生きた%s" % (10000,"犬") # => "10000回生きた犬"
u"%(count)d回生きた%(animal)s" % {"count":1000000,"animal":"猫") # => "1000000回生きた猫"
スライス
スライスのステップ数指定
スライスにはステップ数を指定することもできる。
[1,2,3,4,5,6,7,8,9,][::3] # => [1,4,7]
スライスによる一部要素の入れ替え
li = [1,2,3,4,5]
li[1:4] = ["two","three","four"] # => li = [1,"two","three","four",5]
スライス指定での要素の削除
li = [1,2,3,4,5]
del li[2:] # => [1,2]
アンパック代入
リストやタプルの要素を個別の変数にアンパックして代入できる
one, two = (1, 2) # one=1 two=2 と同様
three, four = 3, 4 # カンマ区切りの値の列挙はタプルとして扱われる
シーケンス型 (リストやタプル、文字列など)
set
辞書
in
シーケンス中に要素が含まれるかをTrue/Falseで返す。文字列中に部分文字列が含まれるかもチェックできる。
シーケンスとループカウンタ
シーケンスをイテレートしながら同時にカウンタも使う場合はenumerate()関数が便利。
for cnt, item in enumerate(seq):
print cnt, item
zip()関数
2つのシーケンスの要素をタプルにしたリストにして返す。要素数が異なる場合は、少ない方にあわせる。
for name,email in zip(namelist,emaillist):
print name+":"+email
引数リスト
def foo(a,b,*vals):
print a, b, vals # valsは複数要素をとれる。タプルとして関数内で使用できる。
foo(1,2,100,200) # => 1 2 (100, 200)
引数マップ
def bar(a,b, **args):
print a,b,args # argsはマップとなる
bar(1,2,c=100,d=200) # => 1 2 {'c': 100, 'd': 200}
文字列
スクリプトファイルのエンコード指定
ファイルの一行目に以下のようなコメントを書く
# coding: <エンコード名>
# coding = <エンコード名>
# -*- coding: <エンコード名> -*-
デフォルトエンコーディング
デフォルトエンコーディング設定は、sysモジュールの setdefaultencoding()
関数を使う。 sitecustomize.pyに環境の設定をかける。