nearest_distance_table = [1,4,5,9,10,14,15]
nodes_explored = [2,10,14]
我想将变量next
赋值给不在nodes_explored
中的nearest_distance_table
的最小值。是否有使用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)
您可以像下面这样使用推导式
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
您可以将列表转换为集合:
lowest = min(set(nearest_distance_table).difference(nodes_explored))
注意,如果您想保留重复的值,这将不起作用。例如,
nearest_distance_table = [2, 2, 4]
nodes_explored = [2]
将给出4作为答案,因为两个2s将被折叠成一个值,然后被删除。这与您的示例中的行为相同。