1 2 3 4 5 6 7 8 9 10 |
例1 a = [1, -2, 3, -4, 5] list(filter(lambda x: x>0, aaa)) #xはこの場限りの変数aaaはフィルターしたい文字の入った変数 #変数aaaにある要素の数だけ繰り返す 例2 list(filter(lambda x: x > 1 and x < 7, tuki2)) |
1 2 3 4 5 6 7 8 9 10 |
例1 a = [1, -2, 3, -4, 5] list(filter(lambda x: x>0, aaa)) #xはこの場限りの変数aaaはフィルターしたい文字の入った変数 #変数aaaにある要素の数だけ繰り返す 例2 list(filter(lambda x: x > 1 and x < 7, tuki2)) |
1 |
lambdaで条件分岐をするには |
1 2 |
<span class="cm-variable">a</span> = <span class="cm-keyword">lambda</span> <span class="cm-variable">x</span>: <span class="cm-variable">x</span> <span class="cm-operator">*</span> <span class="cm-number">3</span> <span class="cm-keyword">if</span> <span class="cm-variable">x</span> <span class="cm-operator"><</span> <span class="cm-number">4</span> <span class="cm-keyword">else</span> <span class="cm-variable">x</span><span class="cm-operator">/</span><span class="cm-number">2</span> <span class="cm-operator">+</span> <span class="cm-number">7</span> |
lambda x(引数) : 条件を満たすときの処理 if x < 4 else x/2 + 7
1 |
x = lambda a: a ** 2 - 40 * a + 350 if a >= 10 and a < 30 else 50 |
#returnはいらない
re.split を使い複数の記号を指定して分割する
1 |
<span class="cm-variable">切り分けたい文字列</span>.<span class="cm-property">split</span>(<span class="cm-string">"区切る記号"</span>, <span class="cm-variable">区切る回数</span>) |
例:
re.split(“[/ _ :]”
import re
time_data = "2020/11/25_23:00"
# time_dataを切り分け。
time = re.split("[/ _ :]",time_data)
# "月"と"時"の部分を出力
print(time[1])
print(time[3])
例:
[/_:]を取り出す関数
import re
time_list = [
"2006/11/26_2:40",
"2009/1/16_23:35",
"2014/5/4_14:26",
"2017/8/9_7:5",
"2017/4/1_22:15"
]
# 文字列から"時"を取り出す関数を作成(これはgetに関数を入れるので数値が入るのではない)
get = lambda x: int(re.split("[/_:]",x)[1])
#変数xが引数、[1]が月を取得する目的
1 |
<span class="cm-builtin">map</span>(<span class="cm-variable">適用したい関数</span>, <span class="cm-variable">配列</span>) |
hour_list = list(map(get, time_list))
#map()でforのようにtime_listの数だけ繰り替えし、上記で設定したget関数を
#各リストに対し行い、list関数によってリストを再構築(print list("ABC") # ["A", "B", "C"])
print (hour_list) #>>>[11,1,5,8,9]になる
リスト内包表記
1 |
[<span class="cm-variable">関数</span>(<span class="cm-variable">要素</span>) <span class="cm-keyword">for</span> <span class="cm-variable">要素</span> <span class="cm-keyword">in</span> <span class="cm-variable">配列の変数</span>] |
1 2 |
[<span class="cm-builtin">abs</span>(<span class="cm-variable">x</span>) <span class="cm-keyword">for</span> <span class="cm-variable">x</span> <span class="cm-keyword">in</span> <span class="cm-variable">a</span>] |
1 2 3 4 |
>Out: [1, 2, 3, 4, 5] イテレータ用にmap、 |
1 |
直接配列用にスト内包表記を使用する |
defの定義が不要
(lambda x, y,z: x + y * z)(3, 5,400)
これを実行すれば計算結果2003がでるprintは不要