提取最小值节点
Extract min value node
我有以下 class:
class Node:
def __init__(self, node, value, left=None, right=None):
self.node = node
self.value = value
self.left = left
self.right = right
self.code = ''
我有一个节点列表。问题是,如何提取具有最低 self.value
属性的节点?[=12=]
您可以使用带有匿名函数的内置 min
函数来访问值参数:
min(listNodes, key=lambda x: x.value)
或者你可以在Node
中定义丰富的比较方法__lt__
和__eq__
(你可以定义额外的丰富比较方法,但这两个足以满足[=13这样的排序=]):
class Node:def __init__(self, node, value, left=None, right=None):
self.node = node
self.value = value
self.left = left
self.right = right
self.code = ''
def __iter__(self):
return self
def __lt__(self, other):
return self.value < other.value
def __eq__(self, other):
return self.value == other.value
这将允许 min
直接比较找到最小值的节点!
min(listNodes)
在 Python3 之前,可以使用现已弃用的 __cmp__
方法一次创建所有丰富的比较方法;见 Question About This and Linked Official Notes
我有以下 class:
class Node:
def __init__(self, node, value, left=None, right=None):
self.node = node
self.value = value
self.left = left
self.right = right
self.code = ''
我有一个节点列表。问题是,如何提取具有最低 self.value
属性的节点?[=12=]
您可以使用带有匿名函数的内置 min
函数来访问值参数:
min(listNodes, key=lambda x: x.value)
或者你可以在Node
中定义丰富的比较方法__lt__
和__eq__
(你可以定义额外的丰富比较方法,但这两个足以满足[=13这样的排序=]):
class Node:def __init__(self, node, value, left=None, right=None):
self.node = node
self.value = value
self.left = left
self.right = right
self.code = ''
def __iter__(self):
return self
def __lt__(self, other):
return self.value < other.value
def __eq__(self, other):
return self.value == other.value
这将允许 min
直接比较找到最小值的节点!
min(listNodes)
在 Python3 之前,可以使用现已弃用的 __cmp__
方法一次创建所有丰富的比较方法;见 Question About This and Linked Official Notes