素人Tips
今までなんて面倒な方法をしていたのか?と思ってしまいましたので、ちょっとメモしておきます。こんなに簡単とは知らなかったです。
使うのは、findallです。
1 |
re.findall |
使い方基本
[スクリプト: ext_num.py]
1 2 3 4 5 6 7 8 |
#!/usr/bin/env python import re str = "a: 10, b: 20, c: 30" #処理対象の文字列 pat = r'[0-9]+' #抽出するパターン:数字 num_list = re.findall(pat, str) #数字を抽出してリスト化 print (num_list) |
文字列内の数字がリスト化される
1 2 |
$ ./ext_num.py $ ['10', '20', '30'] |
値の合計を出す
[スクリプト:total.py]
1 2 3 4 5 6 7 8 9 10 11 |
#!/usr/bin/env python import re str = "a: 10, b: 20, c: 30" pat = r'[0-9]+' num_list = re.findall(pat, str) total = 0 #リスト内数字を合計 for i in num_list: total += int(i) #total = sum(num_list)でも可 print (total) |
リスト内の数字を全部足して答えを表示します。
1 2 |
$ ./total.py 60 |
スポンサーリンク
まとめ
今回は、pythonで、文字列から数字を取り出して、合計する方法をメモしておきます。findallって、なにげに使えますね。覚えておきます。