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)
发布于 2021-10-25 06:18:46
您可以使用理解,如下所示
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
发布于 2021-10-25 06:18:39
您可以将列表转换为集合:
lowest = min(set(nearest_distance_table).difference(nodes_explored))
请注意,如果您想保留重复的值,这将不起作用。例如,
nearest_distance_table = [2, 2, 4]
nodes_explored = [2]
将给出4作为答案,因为两个2将折叠成单个值,然后删除。这与您的示例中的行为相同。
https://stackoverflow.com/questions/69709617
复制