第1回

list
  • 配列のようなデータ型
  • 数値や文字列など、どんなオブジェクトでも入れることができる
  • 異なるオブジェクトを同じlistに格納できる
  • listの大きさは自動的に調整してくれるので確保が不要
  • 各要素には整数のインデックスが振られる
tuple
  • 変更ができない
  • 辞書のキーにできる
set
  • 同じ要素が重複しない
  • 集合演算ができる
  • 引き算はできるが、足し算や掛け算はできない
  • 順番(インデックス)がない
dict
  • 要素をkeyで管理
  • keyは変更できない型のみ

map()
  • map(関数, iterableオブジェクト)
  • iterableオブジェクトに関数を適用し、その戻り値を要素とするlistを返す
    >>> map(int, [1, '2', u'3', 4.0])
    [1, 2, 3, 4]
filter()
  • filter(関数, iterableオブジェクト)
  • iterableオブジェクトに関数を適用し、戻り値がTrueであるものをlistとして返す
    >>> filter(len, [[], [1], [], [1, 2]])
    [[1], [1, 2]]
lambda()
  • lambda 引数: 戻り値
  • 無名の関数オブジェクトを作成
    >>> def distance(x, y, func):
    ...     return func(x-y)
    ...
    >>> def square(x):
    ...     return x*x
    ...
    >>> distance(3, 1, square)
    4
    >>> def distance(x, y, func):
    ...     return func(x-y)
    ...
    >>> distance(3, 1, lambda x: x*x)
    4

zip()
  • zip(iterableオブジェクト1, iterableオブジェクト2, ・・・)
  • map(None, iterableオブジェクト1, iterableオブジェクト2, ・・・)と同じ
    >>> zip([1, 2, 3], ['a', 'b', 'c'])
    [(1, 'a'), (2, 'b'), (3, 'c')]
enumerate()
  • 要素を取り出すのと同時にカウントする
    >>> for i, elem in enumerate(['a', 'b', 'c']):
               print('%s:%s' % (i,elem))
    0:a
    1:b
    2:c
reversed()
  • listを逆順に並び替え
    a=[1, 3, 2, 4]
    >>> a.reverse()
    >>> a
    [4, 2, 3, 1]
    a自体が変更される
    >>> list(reversed(a))
    [4, 2, 3,1]
    >>> a
    [1, 3, 2, 4]
    新しいlistとして返す
sorted()
  • listを昇順に並び替え
    >>> a.sort()
    >>> a
    [1, 2, 3, 4]
    a自体が変更される
    >>> sorted(a)
    [1, 2, 3, 4]
    >>> a
    [4, 2, 3, 1]
    新しいlistとして返す

リスト内包表記
  • [新たに追加する要素 for 取り出した要素 in 対象のリスト if 条件式]
    >>> newlist=[]
    >>> for i in [1, 2, 3]:
    ...     newlist.append(i*2)
    ...
    >>> newlist
    [2, 4, 6]
    >>> [i*2 for i in [1, 2, 3]]
    [2, 4, 6]
    同じ動作を1行で書ける!


参考文献
    柴田淳(2009)『みんなのPython改訂版』ソフトバンククリエイティブ株式会社
    株式会社エスキュービズム、細田謙二、オレンジ岸本、石井光次郎、岩川建彦、岡田正彦(2010)『Python入門[2&3対応]』株式会社秀和システム
    スティーブン・バード、エワン・クライン、エドワード・ローパー(2010)『入門自然言語処理』株式会社オライリー・ジャパン
Comments