モジュールの関数 my_module1.func(val)
がどういうものか分からない状況においては、最大値を与えるval
がただ一つとは限らないので、最大値を与えるval
のリストを得るコードを考えます。
質問にあるコードの
python3
1r_list = range(0,10)
2
3result = []
4for val in r_list:
5 result.append(my_module1.func(val))
までを活かすとすると、次に
python3
1maximum = max(result)
として、最大値を変数 maximum
に得てから、
python3
1x_list = [x for x in r_list if my_module1.func(x) == maximum]
とすると、最大値を与えるx
のリスト x_list
が得られます。
たとえば、モジュールの関数 my_module1.func(val)
が、引数val
を3で割った余りを返すものとすると、上記によって、maximum
は 2, x_list
は [2, 5, 8] が得られます。
他のコードとしては、最大値の特定と、最大値を与えるx
のリスト作成をひとつのループでやろうとすれば、たとえば以下のようなものになります。
python3
1maximun = None
2x_list = None
3
4for val in r_list:
5 y = my_module1.func(val)
6 if maximun == None or y > maximun:
7 maximun = y
8 x_list = [val]
9 elif y == maximun:
10 x_list.append(val)
11
12
13print(maximun, x_list) # => 2 [2, 5, 8] (my_module1.func が 3で割った余りを返す場合)
14
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。