次のような2つのリストがあります。
l_one = [2,5,7,9,3]
l_two = [4,6,9,11,4]
...そして、両方のリストを組み合わせて最小値と最大値を見つける必要があります。つまり、単一の最小値と単一の最大値を生成したいと思います。
私の質問は-これを達成するための最もPython的な方法は何ですか?
どんな助けでも大歓迎です。
おそらく最も読みやすい方法は
max(l_one + l_two)
また
min(l_one + l_two)
l_one + l_two
ただし、新しいリストが作成されるため、リストはコピーされます。コピーを避けるために、あなたはすることができます
max(max(l_one), max(l_two))
min(min(l_one), min(l_two))
リストのコピーを回避する別の方法
>>> l_one = [2,5,7,9,3]
>>> l_two = [4,6,9,11,4]
>>>
>>> from itertools import chain
>>> max(chain(l_one, l_two))
11
>>> min(chain(l_one, l_two))
2
それらを組み合わせて、minまたはmaxを呼び出すことができます。
>>> l_one = [2,5,7,9,3]
>>> l_two = [4,6,9,11,4]
>>> min(l_one + l_two)
2
>>> max(l_one + l_two)
11
(AndreasTコメントに感謝します。「min(min())」ソリューションを削除しました)
さまざまなnumpy配列で動作するよりスマートなソリューションがあるかもしれません:
import numpy as np
i1=np.array(range(5))
i2=np.array(range(4))
i3=np.array(range(-5,5))
np.min(np.concatenate([i1,i2,i3]))
2つのリストから最大値または最小値を選択する場合は、次のように機能すると思います。
from numpy import maximum
result = maximum(l_one,l_two)
この2つのリストの各要素を比較した後、最大値を返します。