モジュールの関数 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