[英]Finding the minimum from a nested list using recursion
我正在嘗試編寫一個函數來查找嵌套列表的最小值。 我已經編寫了代碼,但得到了不能在整數和列表之間使用 < 的錯誤。 有任何想法嗎? 我不能使用任何內置函數。
def minimumVal(Y):
if len(Y) == 1:
return Y[0]
minimum = Y[0]
if minimum < minimumVal(Y[1:]):
return minimum
else:
return minimumVal(Y[1:])
我的第一個想法是使用 itertools 折疊列表,但由於您不能使用內置函數,因此這里有一個有效的方法:
l = [2, 3, 4, 5, 6, [3, 4, 5, 10], [15, 4, 9, 8]]
minimum = []
for sublist in l:
try:
for num in sublist:
if len(minimum) == 0:
minimum.append(num)
else:
if num < minimum[0]:
minimum[0] = num
except:
if len(minimum) == 0:
minimum.append(sublist)
else:
if sublist < minimum[0]:
minimum[0] = num
print(minimum[0])
輸出:2
如果您不能使用 len(),這里有更多嘗試/例外的另一個選項:
l = [2, 3, 4, 5, 6, [3, 4, 5, 10], [15, 4, 9, 8]]
minimum = []
for sublist in l:
try:
for num in sublist:
try:
if num < minimum[0]:
minimum[0] = num
except IndexError:
minimum.append(num)
except:
try:
if sublist < minimum[0]:
minimum[0] = sublist
except IndexError:
minimum.append(sublist)
print(minimum[0])
輸出:2
最后一個選項,如果你不能使用內置函數進行 append 你可以這樣做:
l = [3, 4, 5, 6, 2, [3, 4, 5, 10], [15, 4, 9, 8]]
minimum = ['place holder']
for sublist in l:
try:
for num in sublist:
if minimum[0] != 'place holder':
if num < minimum[0]:
minimum[0] = num
else:
minimum[0] = num
except:
if minimum[0] != 'place holder':
if sublist < minimum[0]:
minimum[0] = sublist
else:
minimum[0] = sublist
print(minimum[0])
輸出:2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.