マガジンのカバー画像

技術メモ

74
運営しているクリエイター

#python

Python での concat/flatten

Python でリストのリストを平らにする(あるいは連結する)なら、一番よいのは itertools.chain をつかう方法。

import itertoolsflatten = itertools.chain.from_iterable

たとえばこんな風に使える:

flatten は(二重の)内包表記をつかって次のようにも定義できる:

flatten = lambda vss: (v

もっとみる

型の定義(Python)

Python は Typing モジュールを利用して変数や関数の型注釈ができる。
次のような関数定義があれば、整数型の引数をひとつ取って整数を返すことがわかる。

def myFunction(v: int) -> int:

複雑な構造を持つ戻り値やたくさんの引数があるとき、型の明示はとくに理解の助けになる(ので積極的に使いたい)。

新しい型の定義

新しい型は、型定義を変数に代入することで実

もっとみる

(Python)標準出力に CSV を書きだす

標準の csv モジュールは reader や writer を「ファイル様」オブジェクトにかぶせるようになっている。 UNIX 的な CLI のように標準出力に CSV を書きだしたいときはこうするとよさそう。

config = {'encoding': 'utf-8', 'newline': '', 'write_through': True}writer = csv.writer(io.T

もっとみる

入れ子の関数(Python)

Google Python Style Guide の和訳をお昼休みにすこしずつ進めている。
今日は 2.6 節の入れ子のクラスと関数を訳していた。

ところでこの節、のっけに以下の記述がある。

fine when used to close over a local variable

close をどう訳すかという点で悩む。たぶん「ローカル変数を(クロージャ―として)閉じこむのはよい」だろ

もっとみる