nearest_distance_table = [1,4,5,9,10,14,15]
nodes_explored = [2,10,14]
我要分配一個變數next來的最低值nearest_distance_table,是不是在nodes_explored。是否有單線min()用于執行此操作?我知道如何使用 for 回圈來做到這一點,但是有沒有辦法用一行 min() 來做到這一點?
使用 for 回圈:
minimum = float("inf")
for I in nearest_distance_table:
if I < minimum and I not in nodes_explored:
minimum = I
print(I)
uj5u.com熱心網友回復:
你可以使用如下理解
nearest_distance_table = [1,4,5,9,10,14,15]
nodes_explored = [2,10,14]
minimum = min(i for i in nearest_distance_table if i not in nodes_explored)
print(minimum)
輸出
1
uj5u.com熱心網友回復:
您可以將串列轉換為集合:
lowest = min(set(nearest_distance_table).difference(nodes_explored))
請注意,如果您想保留重復值,這將不起作用。例如,
nearest_distance_table = [2, 2, 4]
nodes_explored = [2]
將給出 4 作為答案,因為兩個 2 將被折疊為一個值然后被洗掉。這與您的示例中的行為相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/336736.html
上一篇:如何使用具有多個結果的函式和組
