回答編集履歴

4

追記

2017/11/16 09:03

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -47,6 +47,10 @@
47
47
  result = list(map(lambda x: x[0], result))
48
48
 
49
49
  ```
50
+
51
+
52
+
53
+ よく考えたら、`result = next(zip(*result))`でも行けますね。
50
54
 
51
55
 
52
56
 

3

追記

2017/11/16 09:03

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -47,3 +47,127 @@
47
47
  result = list(map(lambda x: x[0], result))
48
48
 
49
49
  ```
50
+
51
+
52
+
53
+ コメントを受けて
54
+
55
+ ---
56
+
57
+ > 1点質問がありまして、2つ目の第一要素以外を読み捨てるかにある「*_」は
58
+
59
+ > どのような意味でしょうか??
60
+
61
+
62
+
63
+ 確かにこれ`for x, *_ in hoge:`は初めて見たら戸惑うでしょうね。
64
+
65
+
66
+
67
+ ---
68
+
69
+ **アスタリスクの役割**
70
+
71
+ Pythonでは、タプルやリストなどのシーケンスの値を、次のように受け取ることが出来ます。
72
+
73
+ ただし、最後の行を見てわかるように、要素が一対一対応していなければいけません。
74
+
75
+ ```Python
76
+
77
+ >>> a, b, c = [1, 2, 3]
78
+
79
+ >>> a
80
+
81
+ 1
82
+
83
+ >>> b
84
+
85
+ 2
86
+
87
+ >>> c
88
+
89
+ 3
90
+
91
+ >>> a, b = [1, 2, 3]
92
+
93
+ Traceback (most recent call last):
94
+
95
+ File "<stdin>", line 1, in <module>
96
+
97
+ ValueError: too many values to unpack (expected 2)
98
+
99
+ ```
100
+
101
+
102
+
103
+ ここで、ある程度まとめて要素を受け取りたいときは、次のように書きます。
104
+
105
+ ```Python
106
+
107
+ >>> a, *b = [1, 2, 3]
108
+
109
+ >>> a
110
+
111
+ 1
112
+
113
+ >>> b
114
+
115
+ [2, 3]
116
+
117
+ ```
118
+
119
+
120
+
121
+ これで、アスタリスクの役割はわかりましたね。
122
+
123
+ 以前これについて詳しく回答したことがあるので、そちらを見ると理解が深まるかもしれません。
124
+
125
+ [teratail - a,b=hogeというような代入される値が二つあるものの意味](https://teratail.com/questions/99730)
126
+
127
+
128
+
129
+ ---
130
+
131
+ **アンダーバーの意味**
132
+
133
+ Pythonの仕様上、アンダーバー単体の命名が認められています。
134
+
135
+ ですので、ただの変数と思っていただいて大丈夫です。
136
+
137
+ ```Python
138
+
139
+ >>> _ = 10
140
+
141
+ >>> _
142
+
143
+ 10
144
+
145
+ ```
146
+
147
+
148
+
149
+ ただし、習慣上**『その場で捨てる値』**を示すことが多いです。(REPLを除く)
150
+
151
+ これについても、以前回答したことがあります。
152
+
153
+ [teratail - tensorflowでアンダースコア(_)に格納する意味](https://teratail.com/questions/88524)
154
+
155
+
156
+
157
+ ---
158
+
159
+ **つまり?**
160
+
161
+ ```Python
162
+
163
+ for i, *_ in result:
164
+
165
+ if i >= 0.1:
166
+
167
+ print(i)
168
+
169
+ ```
170
+
171
+
172
+
173
+ 「一個目の要素だけほしいな。後は何個あるかわからないけど、とりあえずいらないや」って意味です。

2

修正

2017/11/16 08:54

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- **result自体書き換えるか**
29
+ **イテレータいじるか**
30
30
 
31
31
  ```Python
32
32
 
@@ -37,3 +37,13 @@
37
37
  print(i)
38
38
 
39
39
  ```
40
+
41
+
42
+
43
+ **前もってresultを書き換えてしまうか**
44
+
45
+ ```Python
46
+
47
+ result = list(map(lambda x: x[0], result))
48
+
49
+ ```

1

修正

2017/11/16 08:19

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -30,6 +30,10 @@
30
30
 
31
31
  ```Python
32
32
 
33
- result = map(lambda x: x[0], result)
33
+ for i in map(lambda x: x[0], result):
34
+
35
+ if i >= 0.1:
36
+
37
+ print(i)
34
38
 
35
39
  ```