Search
Ad
|
新規
下位
一覧
検索
最新
ヘルプ
ページへ戻る
編集
複製
履歴
添付
印刷
Python/リストの検索と変換
をテンプレートにして作成
xpwiki
:Python/リストの検索と変換 をテンプレートにして作成
開始行:
*内包表記と高階関数
Pythonではリストを変換する手段としてリスト内包表記を使う...
一般に内包表記の方が高速で動作すると言われていて、公式で...
とはいえ、他の言語でmapやfilterなどの高階関数を使ったこと...
ここではなるべく両方のやり方を書いていきます。
*要素の存在チェック
Pythonで特定の要素が存在するかは、「in」を用います。
testList = [1,2,3,4,5,6]
if 1 in testList:
print "1 exists!"
if 10 in testList:
print "10 exists!"
結果
1 exists!
*要素を検索して場所を返す
要素に特定の値が現れる場所を求めるには、indexを使います。
第二引数を省略すると最初の場所が返ります。
testList = [2,1,3,1,5,6]
print testList.index(1)
結果
1
indexの第二引数、第三引数に整数を入れると、その区間にある...
testList = [2,1,3,1,5,6]
print testList.index(1,2,5)
結果
3
要素がないとValueErrorが発生します。
検索して一致した全ての場所を取り出すのは、以下のように内...
resultList = [i for (i,x) in enumerate(testList) if x =...
結果
[1, 3]
enumerateは、インデックスと要素のタプルを返す関数です。
*検索した要素をリストで取得
例として3以上の要素をリストで取得する方法を考えます。
**リスト内包表記を使う
testList = [1,2,3,4,5,6]
resultRist = [x for x in testList if x > 3]
print resultRist
結果
[4, 5, 6]
**高階関数filterを使う
testList = [1,2,3,4,5,6]
resultList = filter(lambda x : x > 3, testList)
print resultList
ここで第一引数は真偽型を戻り値とする関数です。ここではラ...
結果
[4, 5, 6]
ラムダ式の部分はもちろん関数でもかまいません。ただし簡単...
def filterFunction(x):
return x > 3
testList = [1,2,3,4,5,6]
resultList = filter(filterFunction, testList)
print resultList
*要素を変換する
例として全要素を2倍にする処理を考えます。
**リスト内包表記を使う
testList = [1,2,3,4,5,6]
resultRist = [2 * x for x in testList]
print resultRist
結果
[2, 4, 6, 8, 10, 12]
**高階関数mapを使う
全要素を変換する場合はmapを使います。
testList = [1,2,3,4,5,6]
resultList = map(lambda x : x * 2, testList)
print resultList
ここでmapの第一引数は引数を二倍にするラムダ式です。
結果
[2, 4, 6, 8, 10, 12]
*要素を検索して変換する
例として3より大きな要素を二倍することを考えます。
**リスト内包表記
testList = [1,2,3,4,5,6]
resultRist = [2 * x for x in testList if x > 3]
print resultRist
結果
[8, 10, 12]
**高階関数を組み合わせる
mapとfilterを組み合わせれば、同じことができます。
testList = [1,2,3,4,5,6]
resultList = map(lambda x : x * 2, filter(lambda x : x ...
print resultList
結果
[8, 10, 12]
*まとめ
全体に簡単な処理ならリスト内包表記の方がコンパクトに書け...
複雑な処理の場合は、別に関数を定義する高階関数の方がルー...
終了行:
*内包表記と高階関数
Pythonではリストを変換する手段としてリスト内包表記を使う...
一般に内包表記の方が高速で動作すると言われていて、公式で...
とはいえ、他の言語でmapやfilterなどの高階関数を使ったこと...
ここではなるべく両方のやり方を書いていきます。
*要素の存在チェック
Pythonで特定の要素が存在するかは、「in」を用います。
testList = [1,2,3,4,5,6]
if 1 in testList:
print "1 exists!"
if 10 in testList:
print "10 exists!"
結果
1 exists!
*要素を検索して場所を返す
要素に特定の値が現れる場所を求めるには、indexを使います。
第二引数を省略すると最初の場所が返ります。
testList = [2,1,3,1,5,6]
print testList.index(1)
結果
1
indexの第二引数、第三引数に整数を入れると、その区間にある...
testList = [2,1,3,1,5,6]
print testList.index(1,2,5)
結果
3
要素がないとValueErrorが発生します。
検索して一致した全ての場所を取り出すのは、以下のように内...
resultList = [i for (i,x) in enumerate(testList) if x =...
結果
[1, 3]
enumerateは、インデックスと要素のタプルを返す関数です。
*検索した要素をリストで取得
例として3以上の要素をリストで取得する方法を考えます。
**リスト内包表記を使う
testList = [1,2,3,4,5,6]
resultRist = [x for x in testList if x > 3]
print resultRist
結果
[4, 5, 6]
**高階関数filterを使う
testList = [1,2,3,4,5,6]
resultList = filter(lambda x : x > 3, testList)
print resultList
ここで第一引数は真偽型を戻り値とする関数です。ここではラ...
結果
[4, 5, 6]
ラムダ式の部分はもちろん関数でもかまいません。ただし簡単...
def filterFunction(x):
return x > 3
testList = [1,2,3,4,5,6]
resultList = filter(filterFunction, testList)
print resultList
*要素を変換する
例として全要素を2倍にする処理を考えます。
**リスト内包表記を使う
testList = [1,2,3,4,5,6]
resultRist = [2 * x for x in testList]
print resultRist
結果
[2, 4, 6, 8, 10, 12]
**高階関数mapを使う
全要素を変換する場合はmapを使います。
testList = [1,2,3,4,5,6]
resultList = map(lambda x : x * 2, testList)
print resultList
ここでmapの第一引数は引数を二倍にするラムダ式です。
結果
[2, 4, 6, 8, 10, 12]
*要素を検索して変換する
例として3より大きな要素を二倍することを考えます。
**リスト内包表記
testList = [1,2,3,4,5,6]
resultRist = [2 * x for x in testList if x > 3]
print resultRist
結果
[8, 10, 12]
**高階関数を組み合わせる
mapとfilterを組み合わせれば、同じことができます。
testList = [1,2,3,4,5,6]
resultList = map(lambda x : x * 2, filter(lambda x : x ...
print resultList
結果
[8, 10, 12]
*まとめ
全体に簡単な処理ならリスト内包表記の方がコンパクトに書け...
複雑な処理の場合は、別に関数を定義する高階関数の方がルー...
ページ名:
ぺージ情報
ぺージ名 :
Python/リストの検索と変換
ページ別名 :
未設定
ページ作成 :
njf
閲覧可
グループ :
すべての訪問者
ユーザー :
すべての訪問者
編集可
グループ :
すべての訪問者
ユーザー :
すべての訪問者
Counter: 0, today: 0, yesterday: 0
MenuBar
20
最新の0件
広告
ログイン
ユーザー名:
パスワード:
パスワード紛失