18

次のような2つのリストがあります。

l_one = [2,5,7,9,3]
l_two = [4,6,9,11,4]

...そして、両方のリストを組み合わせて最小値と最大値を見つける必要があります。つまり、単一の最小値と単一の最大値を生成したいと思います。

私の質問は-これを達成するための最もPython的な方法は何ですか?

どんな助けでも大歓迎です。

4

5 に答える 5

43

おそらく最も読みやすい方法は

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))
于 2012-04-04T14:08:48.210 に答える
16

リストのコピーを回避する別の方法

>>> 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
于 2012-04-04T14:12:23.960 に答える
3

それらを組み合わせて、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
于 2012-04-04T14:09:10.780 に答える
3

(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]))
于 2015-01-09T14:04:19.197 に答える
1

2つのリストから最大値または最小値を選択する場合は、次のように機能すると思います。

from numpy import maximum
result = maximum(l_one,l_two)

この2つのリストの各要素を比較した後、最大値を返します。

于 2017-11-24T01:12:11.710 に答える