作成日
2013/07/21最終更新
2020/09/28記事区分
一般公開リスト
range
「0から10まで」といった範囲をリスト形式で生成します。
sample.py
print range(10) # for(int i=0; i<10; ++i) ← C言語などのfor文と比較
print range(5,10) # for(int i=5; i<10; ++i)
print range(5,10,2) # for(int i=5; i<10; i+=2)
print range(10,5,-1) # for(int i=10; i>5; --i)
出力例
$ python sample.py
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[5, 6, 7, 8, 9]
[5, 7, 9]
[10, 9, 8, 7, 6]
ソート
List = [2,1,3,0]
print sorted(List)
List.sort()
print List
出力例
[0, 1, 2, 3]
[0, 1, 2, 3]
合計
print sum([2,1,3,0])
出力例
6
長さ
print len([1,2,3])
出力例
3
要素の真偽値判定
print any([2,1,3,0]) # 少なくとも1つがTrueなら真
print all([2,1,3,0]) # すべてがTrueなら真
print 'val1' in ['val1', 'val2', 'val3'] # 含まれているか
print 'val4' in ['val1', 'val2', 'val3']
出力例
True
False
True
False
POP
List = ['A','B','C']
while List: print List.pop()
出力例
C
B
A
連結
List = ['a','b']
複数要素を追加
print List + ['c','d']
List.extend(['c','d']); print List
1つの要素を追加
print List + ['x']
List.append('x'); print List
出力例
['a', 'b', 'c', 'd']
['a', 'b', 'c', 'd']
['a', 'b', 'c', 'd', 'x']
['a', 'b', 'c', 'd', 'x']
スライシング
List = ['A','B','C','D','E']
print List[:2] # List[0:2]の省略形
print List[2:]
string = "This is a string."
print string[:3]
print list(string[:3])
出力例
['A', 'B']
['C', 'D', 'E']
Thi
['T', 'h', 'i']
map関数
print map((lambda x: 2**x), [0,1,2,3,4,5,6,7,8,9,10])
print map((lambda x,y: x**y), [2,2,2,2], [0,1,2,3])
出力例
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
[1, 2, 4, 8]
filter関数
Perlなどのgrepのようなものです。
print filter((lambda x: x>0), range(-5,5))
出力例
[1, 2, 3, 4]
reduce関数
並列プログラミングでおなじみのreduce関数。最初はリストの第1,2要素が引数、次は先程の演算結果と第3要素が引数...(以下同様) となります。
print reduce((lambda x,y: x*y), [1,2,3,4,5]) # n!
出力例
120
ディクショナリ
Dict = {'key1':'val1',
'key2':'val2',
'key3':'val3'}
for key in Dict.keys(): print key, Dict[key]
for key in Dict: print key, Dict[key] # .keys() は省略可能
出力例
key3 val3
key2 val2
key1 val1
key3 val3
key2 val2
key1 val1
要素の存在確認
ディクショナリで値が設定されていない key を指定すると KeyError
となります。has_key()
で確認するか get() を利用します。
D = {'A': 1, 'B': 2}
print 'A' in D
print D.has_key('A')
出力例
True
True
要素の削除
D = {'A': 1, 'B': 2}
del D['A']
print D
D.pop('B')
print D
出力例
{'B': 2}
{}
存在するすべて変数のディクショナリを生成
x = 1; y=2
print vars()
出力例
{'__builtins__': <module '__builtin__' (built-in)>, '__file__':
'sample.py', '__package__': None, 'x': 1, 'y': 2, '__name__':
'__main__', '__doc__': None}
各種シーケンスの生成
list, tuple
print list("string")
print tuple("string")
出力例
['s', 't', 'r', 'i', 'n', 'g']
('s', 't', 'r', 'i', 'n', 'g')
zip, dict(ディクショナリ)
print zip(['a','b','c'], [1,2,3])
print dict(zip(['a','b','c'], [1,2,3]))
出力例
[('a', 1), ('b', 2), ('c', 3)]
{'a': 1, 'c': 3, 'b': 2}
enumerate
for (i,char) in enumerate("abc"): print i,char
出力例
0 a
1 b
2 c
関連記事
- Python コードスニペット (条件分岐)if-elif-else sample.py #!/usr/bin/python # -*- coding: utf-8 -*- # コメント内であっても、ASCII外の文字が含まれる場合はエンコーディング情報が必須 x = 1 # 一行スタイル if x==0: print 'a' # 参考: and,or,notが使用可能 (&&,||はエラー) elif x==1: p...
- ZeroMQ (zmq) の Python サンプルコードZeroMQ を Python から利用する場合のサンプルコードを記載します。 Fixing the World To fix the world, we needed to do two things. One, to solve the general problem of "how to connect any code to any code, anywhere". Two, to wra...
- Matplotlib/SciPy/pandas/NumPy サンプルコードPython で数学的なことを試すときに利用される Matplotlib/SciPy/pandas/NumPy についてサンプルコードを記載します。 Matplotlib SciPy pandas [NumPy](https://www.numpy
- pytest の基本的な使い方pytest の基本的な使い方を記載します。 適宜参照するための公式ドキュメントページ Full pytest documentation API Reference インストール 適当なパッケージ
- PID 制御による全方向移動ロボットの位置制御 (ODE、Python)Open Dynamics Engine (ODE) を用いて、全方向移動ロボットの位置制御を PID 制御で行う場合のサンプルを記載します。差分駆動型ロボットと比較して、全方向移動ロボットは任意の方向に移動できるため位置制御が容易です。 モータの角速度を操作することでロボットの位置を制御 目標値 xdx_dxd と現在時刻における測定値 x(t)x(t)x(t) の残差 e(t)e(t)e(t...