Python怎么根据一个函数来决定列表顺序 255
def__init__(self,function):self._queue=[]self.function=function然后要写一往列表里增加元素的方法,按照fun...
def __init__(self,function):
self._queue = []
self.function = function
然后要写一往列表里增加元素的方法,按照function排序,function类型为函数
def add(self, item):
"""Add <item> to this PriorityQueue.
@type self: PriorityQueue
@type item: Object
@rtype: None
>>> def shorter(a, b):
... return len(a) < len(b)
...
>>>
>>> # Define a PriorityQueue with priority on shorter strings.
>>> # I.e., when we remove, we get the shortest remaining string.
>>> pq = PriorityQueue(shorter)
>>> pq.add('fred')
>>> pq.add('arju')
>>> pq.add('monalisa')
>>> pq.add('hat')
>>> pq._queue
['monalisa', 'arju', 'fred', 'hat']
>>> pq.remove()
'hat'
>>> pq._queue
['monalisa', 'arju', 'fred']
"""
就想达到这种效果
函数不一定要上面举得例子 shorter(a,b) ,function应该只有两个函数,只返回布尔类型。 展开
self._queue = []
self.function = function
然后要写一往列表里增加元素的方法,按照function排序,function类型为函数
def add(self, item):
"""Add <item> to this PriorityQueue.
@type self: PriorityQueue
@type item: Object
@rtype: None
>>> def shorter(a, b):
... return len(a) < len(b)
...
>>>
>>> # Define a PriorityQueue with priority on shorter strings.
>>> # I.e., when we remove, we get the shortest remaining string.
>>> pq = PriorityQueue(shorter)
>>> pq.add('fred')
>>> pq.add('arju')
>>> pq.add('monalisa')
>>> pq.add('hat')
>>> pq._queue
['monalisa', 'arju', 'fred', 'hat']
>>> pq.remove()
'hat'
>>> pq._queue
['monalisa', 'arju', 'fred']
"""
就想达到这种效果
函数不一定要上面举得例子 shorter(a,b) ,function应该只有两个函数,只返回布尔类型。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询