python2の記法のメモ

ifの条件式で…

以下のような書き方が許されている。

if 1 < x < 10:
  ...

文字列 strip()

>>> a = 'abcd1234'
>>> a.strip('ab')
'cd1234'
>>> a.strip('ab4')
'cd123'
>>> a.strip('ab5')
'cd1234'
>>> a.strip('v')
'abcd1234'

リスト、文字列の要素数をカウントする

>>> c = collections.Counter('abccbabcabcbaba')
>>> mc = c.most_common()
>>> mc
[('b', 6), ('a', 5), ('c', 4)]
>>> mc[0]
('b', 6)
>>> mc[-1]
('c', 4)

encode rule

# coding: utf-8
# coding: Shift_JIS
# coding: EUC-JP

for文でenumerate

>>> lst
['a', 'b', 'c', 'd']
>>> for i,x in enumerate(lst):
...     print i , x
...
0 a
1 b
2 c
3 d

isinstance関数

>>> isinstance(1,str)
False
>>> isinstance(1,int)
True
>>> isinstance(1,float)
False

printを’,’で区切る

>>> print "There ", "are " , 3 , " apples."
There  are  3  apples.

printはpython2とpython3で仕様がだいぶ違うそう。

is演算子

同じ参照を指しているときに、True.

x = ['foo']
y = x
print x is y #=> True

x = ['foo']
y = ['foo']
x is y #=> False

ヌルオブジェクト

このオブジェクトは明示的に値を返さない関数によって返されます。このオブジェクトには特有の操作はありません。ヌルオブジェクトは一つだけで、 None (組み込み名) と名づけられています。

>>> None
>>> print None
None
>>> None is None
True
>>> None is not None
False
>>> a = "This is a."
>>> a is None
False

pass

インデントの関係で必要になることが。これ、忘れそう。

if cond1:
   pass
elif cond2:
   print unicode("cond2")
else :
   print unicode("cond3")

set型(重複なし順序なし)

>>> s = set([1,2,3,4,5])
>>> s
set([1, 2, 3, 4, 5])
>>> s.add(3)
>>> s
set([1, 2, 3, 4, 5])

map()

>>> array = range(20)
>>> array
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> map(lambda x:x%4,array)
[0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]

filter()

>>> array
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> filter( lambda x:x%4 == 1 , array )
[1, 5, 9, 13, 17]

reduce()

>>> array
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> reduce( lambda x,y : x + y , array )
190

リスト内包表記

>>> array
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> [x for x in array]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> [x-10 for x in array]
[-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [x for x in array if x % 4 == 1]
[1, 5, 9, 13, 17]

おわり

要所要所で出てくる、’:’をよく忘れて、むかつく。

参考

http://python.civic-apps.com/map-reduce-filter/

http://docs.python.jp/2/contents.html

http://webtech-walker.com/archive/2010/10/13191417.html

http://n-knuu.hatenablog.jp/entry/2015/12/11/233600