2017-09-13 24 views
-4

整数要素を含むタプルを引数として受け取り、タプル内で最大の整数と最小の整数を返す関数max_and_minを作成することになっています。戻り値は、この順序で最大値と最小値を含むタプルでなければなりません。 「正常な」方法についてPythonの最大値と最小値

、私が思い付いた:

def max_and_min(values): 
    return (max(values), min(values)) 
    pass 

誰もが答えを思い付くために反復を使用する方法を知っていますか?

+4

は、forループを求めていますか? – Y0da

+0

何を試しましたか?それは割り当てですか? – Lescurel

+3

正確に何をしたいですか? – Harsha

答えて

0

あなたは最大/最小を検索する場合 - トラバーサル/イテレーションを経て、次のアプローチを使用します。

def max_and_min(values): 
    max_v = min_v = values[0] 
    for v in values[1:]: 
     if v < min_v: 
      min_v = v 
     elif v > max_v: 
      max_v = v 

    return (max_v, min_v) 

l = [1,10,2,3,33] 
print(max_and_min(l)) 

出力:

(33, 1) 
+1

私は、コピーのためのソリューションを提供する代わりに、OPが自分自身でそれを解決しようとすることができるように、ソリューションを説明するべきだと思います。これは特に問題が明らかに宿題に基づいているこのような場合に当てはまります。 –

0

あなたのソリューションは正常に動作しますが、minmaxの両方のメソッドは、それぞれ最小値と最大値を見つけるためにタプルをループします。私はあなたが何をしたいと思います

は以下の通りです:

  • for number in values: ...)を比較smallestbiggestとタプルを通じてタプルの最初の要素
  • ループの両方を設定します。

    • は、2つの変数を定義します各値は現在のsmallestbiggestに、それぞれ「<より小さい」と「より大きい」>演算子を使用します。条件のいずれかに該当する場合
    • は、現在の要素( smallest = number)ループが終了した後

    に、それぞれの変数を設定し、変数を持つことになりますsmallestbiggestは、それぞれの最小値と最大値でいっぱい。

    さらに最適化する場合は、ifの代わりにif ... else...を使用します。最大値は、同時に最小値にすることはできません。 (そのための唯一の方法は、タプルに一つだけ独特の番号をしているし、我々はすでに最初の最初の要素に値を設定することで、そのような場合をカバーした。)

  • 関連する問題