回答編集履歴

4

編集

2017/09/15 09:40

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -54,23 +54,9 @@
54
54
 
55
55
  ---
56
56
 
57
- **リストの要素がすべてintにキャスト出来るか確かめる関数**
57
+ **リストの要素がすべてintにキャスト出来るか確かめる方法**
58
58
 
59
59
  ```Python
60
-
61
- def is_num_list(arg_list):
62
-
63
- try:
64
-
65
- list(map(int, arg_list))
66
-
67
- return True
68
-
69
- except:
70
-
71
- return False
72
-
73
-
74
60
 
75
61
  def main():
76
62
 
@@ -80,21 +66,21 @@
80
66
 
81
67
 
82
68
 
83
- if is_num_list(my_str1):
69
+ try:
84
70
 
85
71
  print(list(map(int, my_str1)))
86
72
 
87
- else:
73
+ except:
88
74
 
89
75
  print('cannot cast')
90
76
 
91
77
 
92
78
 
93
- if is_num_list(my_str2):
79
+ try:
94
80
 
95
81
  print(list(map(int, my_str2)))
96
82
 
97
- else:
83
+ except:
98
84
 
99
85
  print('cannot cast')
100
86
 
@@ -120,6 +106,54 @@
120
106
 
121
107
  ---
122
108
 
109
+ **int型のリストから、特定の範囲の値だけ抜き出す関数**
110
+
111
+ ```Python
112
+
113
+ def make_func_in_range(arg_range):
114
+
115
+ def ret_func(num):
116
+
117
+ return arg_range[0] <= num <= arg_range[1]
118
+
119
+ return ret_func
120
+
121
+
122
+
123
+ def filter_in_range(arg_list, arg_range: tuple):
124
+
125
+ in_range = make_func_in_range(arg_range)
126
+
127
+ return filter(in_range, arg_list)
128
+
129
+
130
+
131
+ def main():
132
+
133
+ int_list = [421, 657, 1000]
134
+
135
+ print(list(filter_in_range(int_list, (500, 800))))
136
+
137
+
138
+
139
+ if __name__ == '__main__':
140
+
141
+ main()
142
+
143
+
144
+
145
+ """出力
146
+
147
+ [657]
148
+
149
+ """
150
+
151
+ ```
152
+
153
+
154
+
155
+ ---
156
+
123
157
  せっかく回答をいただいているんですから、まずそちらにお礼言いましょうよ。
124
158
 
125
159
  [https://teratail.com/questions/92558](https://teratail.com/questions/92558)

3

追記

2017/09/15 09:40

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -70,6 +70,50 @@
70
70
 
71
71
  return False
72
72
 
73
+
74
+
75
+ def main():
76
+
77
+ my_str1 = ['100', '.', 'abc']
78
+
79
+ my_str2 = ['421', '657', '1000']
80
+
81
+
82
+
83
+ if is_num_list(my_str1):
84
+
85
+ print(list(map(int, my_str1)))
86
+
87
+ else:
88
+
89
+ print('cannot cast')
90
+
91
+
92
+
93
+ if is_num_list(my_str2):
94
+
95
+ print(list(map(int, my_str2)))
96
+
97
+ else:
98
+
99
+ print('cannot cast')
100
+
101
+
102
+
103
+ if __name__ == '__main__':
104
+
105
+ main()
106
+
107
+
108
+
109
+ """実行結果
110
+
111
+ cannot cast
112
+
113
+ [421, 657, 1000]
114
+
115
+ """
116
+
73
117
  ```
74
118
 
75
119
 

2

追記

2017/09/15 09:15

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1,3 +1,5 @@
1
+ **リストを順にintにキャストし、不可能な場合Falseを返す関数**
2
+
1
3
  ```Python
2
4
 
3
5
  def is_int(arg):

1

追記

2017/09/15 09:11

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -52,6 +52,28 @@
52
52
 
53
53
  ---
54
54
 
55
+ **リストの要素がすべてintにキャスト出来るか確かめる関数**
56
+
57
+ ```Python
58
+
59
+ def is_num_list(arg_list):
60
+
61
+ try:
62
+
63
+ list(map(int, arg_list))
64
+
65
+ return True
66
+
67
+ except:
68
+
69
+ return False
70
+
71
+ ```
72
+
73
+
74
+
75
+ ---
76
+
55
77
  せっかく回答をいただいているんですから、まずそちらにお礼言いましょうよ。
56
78
 
57
79
  [https://teratail.com/questions/92558](https://teratail.com/questions/92558)