質問するログイン新規登録

質問編集履歴

2

コードを載せました

2019/04/25 14:25

投稿

konataro
konataro

スコア37

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,44 @@
1
- re.findall()を使いある文字列から正規表現で数字を抽出したのですが、r"(\d)\n|(\d)$"のようなグループを二つ使った正規表現だと下記tes_list_1の入れ子構造リストになってしまいます。
1
+ re.findall()を使いある文字列から正規表現で数字を抽出したのですが、コード内にあるようなグループを二つ使った正規表現だと実行結果aような入れ子構造リストになってしまいます。
2
- test_list_2のようにするにはどうしたらいいでしょうか。
3
2
 
3
+ これを一番下にあるリストの形にするにはどうしたらいいでしょうか。
4
4
  どなたか解決方法をお願い致します。
5
+
6
+
5
7
  ```Python
6
- test_list_1 = [(10,100),100,200,300]
8
+ import re
7
9
 
10
+
11
+ strings = """和 123.456789 + 987.654321 = 1111.111110
12
+ 差 123.456789 - 987.654321 = -864.197532
13
+ 積 123.456789 * 987.654321 = 121932.631113
14
+ 商 123.456789 / 987.654321 = 0.125000"""
15
+ O =[i for i in range(4)]
16
+
17
+
18
+ def extract(string):
19
+ extract_value = re.findall(r"(-?\d+.?\d*)\n|(-?\d+.?\d*)$", string)
20
+ return extract_value
21
+
22
+
23
+ def eval_number(a, b):
24
+ print(a)
25
+ print(b)
26
+ print("len(a):%d, len(b):%d"% (len(a),len(b)))
27
+ return len(a) == len(b)
28
+
29
+ if eval_number(extract_out(strings),O):
30
+ print("eval_number is true")
31
+
32
+ ```
33
+
34
+ 実行結果
35
+ ```実行結果
36
+ [('1111.111110', ''), ('-864.197532', ''), ('121932.631113', ''), ('', '0.125000')]
37
+ [0, 1, 2, 3]
38
+ len(a):4, len(b):4
39
+ eval_number is true
40
+ ```
8
- # 下のようなリストにしたい
41
+ aを下のようなリストにしたい。または、この形のリストで抽出したい。
42
+ ```a
9
- test_list_2 = [10,100,100,200,300]
43
+ [1111.111110,-864.197532,121932.631113,0.1250000]
10
44
  ```

1

初心者マーク

2019/04/25 14:25

投稿

konataro
konataro

スコア37

title CHANGED
File without changes
body CHANGED
File without changes