def min_max(L):
if len(L) == 1:
res = [L[0], L[0]]
else:
res = min_max(L[1:])
if (L[0] < res[0]):
res[0] = L[0]
if (L[0] > res[1]):
res[1] = L[0]
return res
ここに私のコードがあります。要素が1つだけの場合、その要素は最小値と最大値の両方です。それ以外の場合は、リストの要素の最小値と最大値を先に見つけて比較し、大きいか小さいかを比較します。反復とループを使用してネストされたリストのPythonの最小最大値を見つける
入れ子リストの場合はこれを行う必要があります。私がやったことは、if len(L) == 1
の前にこの行のコードを追加することでした。
if isinstance(L[0],list):
res = min_max(L[0])
elif len(L) == 1:
res = [L[0], L[0]]
これは部分的に動作しますが、min_max([[3,2],4])
のような例では、私はこの問題を解決するにはどうすればよい4.を考慮せずに[2,3]
を返しますか?
イムないものを 'フロート( 'INF')'手段を確認してください? –
['float( 'inf')'](https://docs.python.org/3.6/library/functions.html#float)は他のすべての数値より大きい無限大の浮動小数点値ですので、使用すると便利です任意の数のリストがそれより小さくなり、したがって選択されるので、最小値のデフォルト値として使用されます。 '-float( 'inf')'をデフォルトの最大値として使用することも同じです。 – niemmi