シーケンス操作関数のサンプルコード集 (Python)
[履歴] [最終更新] (2018/06/24 21:41:11)
最近の投稿
注目の記事

range

「0から10まで」といった範囲をリスト形式で生成します。C言語などのfor文と比較して考えるとイメージしやすいかもしれません。

sample.py

print range(10) # for(int i=0; i<10; ++i)
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
関連ページ
    whileループ sample.py #!/usr/bin/python # -*- coding: utf-8 -*- x = 10 while x: print x, # カンマをつけると改行せずに空白区切りで出力 x -= 1 # pythonにはデクリメント演算子が存在しない (インクリメント演算子もない) else: print x # while判定が偽の後に実行
    概要 AWS Glue を利用すると Apache Spark をサーバーレスに実行できます。基本的な使い方を把握する目的で、S3 と RDS からデータを Redshift に ETL (Extract, Transform, and Load) してみます。2017/12/22 に東京リージョンでも利用できるようになりました
    概要 Python で数学的なことを試すときに利用される Matplotlib/SciPy/pandas/NumPy についてサンプルコードを記載します。 Matplotlib SciPy pandas NumPy チュートリアル Installing packages Quickstart tutorial