回答編集履歴

6

テキスト追加

2020/03/29 08:54

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -78,7 +78,7 @@
78
78
 
79
79
  `'a=1&b=2&c=3'`
80
80
 
81
- が得られますが、これはURLの一部を構成するクエリ文字列の形式なので、これをパースするモジュールの力を借りることができます。以下は、この考え方によコードです。
81
+ が得られますが、これはURLの一部を構成するクエリ文字列の形式なので、これをパースするモジュールの力を借りることができます。以下は、この考え方によって、関数`get_dict` を修正したコードです。
82
82
 
83
83
 
84
84
 

5

テキスト追加

2020/03/29 08:54

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -94,7 +94,9 @@
94
94
 
95
95
  def get_dict(params_str):
96
96
 
97
- return parse_qs(params_str.replace(' ', '&'))
97
+ qs = params_str.replace(' ', '&')
98
+
99
+ return parse_qs(qs)
98
100
 
99
101
 
100
102
 

4

テキスト追加

2020/03/29 08:52

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -110,6 +110,8 @@
110
110
 
111
111
 
112
112
 
113
+
114
+
113
115
  ```
114
116
 
115
117
  - **動作確認用 Repl.it:** [https://repl.it/@jun68ykt/Q2501132](https://repl.it/@jun68ykt/Q2501132)

3

テキスト追加

2020/03/29 08:46

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -86,7 +86,7 @@
86
86
 
87
87
  ```python3
88
88
 
89
- import urllib.parse
89
+ from urllib.parse import parse_qs
90
90
 
91
91
 
92
92
 
@@ -94,7 +94,7 @@
94
94
 
95
95
  def get_dict(params_str):
96
96
 
97
- return urllib.parse.parse_qs(params_str.replace(' ', '&'))
97
+ return parse_qs(params_str.replace(' ', '&'))
98
98
 
99
99
 
100
100
 

2

テキスト追加

2020/03/29 08:45

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -78,7 +78,7 @@
78
78
 
79
79
  `'a=1&b=2&c=3'`
80
80
 
81
- が得られますが、これはURLの一部を構成するクエリパラ文字列の形式なので、これをパースするモジュールの力を借りることができます。以下は、この考え方によるコードです。
81
+ が得られますが、これはURLの一部を構成するクエリ文字列の形式なので、これをパースするモジュールの力を借りることができます。以下は、この考え方によるコードです。
82
82
 
83
83
 
84
84
 

1

テキスト追加

2020/03/29 08:41

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -65,3 +65,57 @@
65
65
 
66
66
 
67
67
  以上参考になれば幸いです。
68
+
69
+
70
+
71
+
72
+
73
+ ### 追記
74
+
75
+
76
+
77
+ 別の方法を挙げておきます。`'a=1 b=2 c=3'` という文字列に含まれるスペースを `&`で置き換えると、
78
+
79
+ `'a=1&b=2&c=3'`
80
+
81
+ が得られますが、これはURLの一部を構成するクエリパラ文字列の形式なので、これをパースするモジュールの力を借りることができます。以下は、この考え方によるコードです。
82
+
83
+
84
+
85
+
86
+
87
+ ```python3
88
+
89
+ import urllib.parse
90
+
91
+
92
+
93
+
94
+
95
+ def get_dict(params_str):
96
+
97
+ return urllib.parse.parse_qs(params_str.replace(' ', '&'))
98
+
99
+
100
+
101
+ if __name__=='__main__':
102
+
103
+ text = ['a=1 b=2 c=3', 'a=2 b=3 c=4']
104
+
105
+ dicts = [get_dict(params_str) for params_str in text]
106
+
107
+ a_list = [int(d['a'][0]) for d in dicts]
108
+
109
+ print(a_list)
110
+
111
+
112
+
113
+ ```
114
+
115
+ - **動作確認用 Repl.it:** [https://repl.it/@jun68ykt/Q2501132](https://repl.it/@jun68ykt/Q2501132)
116
+
117
+
118
+
119
+
120
+
121
+ - **参考:** [urllib.parse.parse_qs](https://docs.python.org/ja/3/library/urllib.parse.html#urllib.parse.parse_qs)