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]が月を取得する目的
ここからmap (forのlambda版)の説明
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 |
直接配列用にスト内包表記を使用する |