from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[1, 'eat']]
q.put[[3, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
# Result:
# [1, 'eat']
# [2, 'code']
# [3, 'sleep']
Tôi có thể làm gì để nó bật theo thứ tự ngược lại? tức là giảm dần
Đã hỏi ngày 26 tháng 6 năm 2019 lúc 23:11Jun 26, 2019 at 23:11
3
Bạn có thể sử dụng phương pháp này như một thủ thuật nhân với -1 để ngược lại thứ tự:
q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
output:
[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
Đã trả lời ngày 26 tháng 6 năm 2019 lúc 23:31Jun 26, 2019 at 23:31
GhassenghassenGhassen
7536 Huy hiệu bạc14 Huy hiệu đồng6 silver badges14 bronze badges
2
Không có cách nào để thay đổi hành vi của lớp hàng đợi. Tôi sẽ trang trí các vật phẩm trước khi xếp hàng chúng và không giải mã chúng sau khi lấy chúng, một cái gì đó như thế này:
def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
Điều đó cung cấp cho bạn các mục sẽ xếp hàng theo đúng thứ tự:
>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
Bằng cách đó, bạn có thể nói q.put[decorated[item]]
thay vì q.put[item]
. Tương tự, bạn lấy lại vật phẩm bằng cách nói undecorated[q.get[]]
thay vì
q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
0. Sau đó, phần còn lại của mã của bạn tiếp tục hoạt động như trước đây.Đã trả lời ngày 27 tháng 6 năm 2019 lúc 0:00Jun 27, 2019 at 0:00
API
q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
1 cho phép bạn xác định thứ tự.Nếu bạn muốn các chuỗi đó theo thứ tự ngược lại, chỉ cần đảo ngược các giá trị
q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
2 trong các bộ dữ liệu:from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
Không có cách nào để đảo ngược hành vi của
q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
1 và Python [không phải là Thể thông] q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
4 sử dụng cùng một thứ tự. Nhưng tôi thấy quan điểm của bạn, tên thật có lẽ là "q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
5" vì q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
6 luôn là lần đầu tiên trong cấu trúc này.Đã trả lời ngày 26 tháng 6 năm 2019 lúc 23:20Jun 26, 2019 at 23:20
JacobirrjacobirrJacobIRR
8.0807 Huy hiệu vàng35 Huy hiệu bạc60 Huy hiệu Đồng7 gold badges35 silver badges60 bronze badges
1
Biểu thức Lambda Kể từ khi Java 8 đã sử dụng, hàm Lambda đặt tên cho các tham số đầu vào của nó A và B và Returns [B-A], về cơ bản là những gì lớp so sánh INT làm ngoại trừ nó trả về A-B.
Declaration:
public class PriorityQueue extends AbstractQueue implements Serializable
Ví dụ: & nbsp;E is the type of elements held in this queue
9 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
0[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1[-3, 'sleep'] [-2, 'code'] [-1, 'eat']
2[-3, 'sleep'] [-2, 'code'] [-1, 'eat']
3[-3, 'sleep'] [-2, 'code'] [-1, 'eat']
4[-3, 'sleep'] [-2, 'code'] [-1, 'eat']
5[-3, 'sleep'] [-2, 'code'] [-1, 'eat']
0def decorated[item]: return [-item[0],] + item def undecorated[item]: return item[1:]
1def decorated[item]: return [-item[0],] + item def undecorated[item]: return item[1:]
2def decorated[item]: return [-item[0],] + item def undecorated[item]: return item[1:]
94q = PriorityQueue[] q.put[[2*[-1], 'code']] q.put[[1*[-1], 'eat']] q.put[[3*[-1], 'sleep']] while not q.empty[]: next_item = q.get[] print[next_item]
Làm thế nào để tôi có được hàng đợi ưu tiên của tôi theo thứ tự ngược lại?
Java
q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
7 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
8[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
2 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
9 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
0[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
2 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
3 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
4 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
12[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
9def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
0def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
1def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
2 q.put[decorated[item]]
5q.put[decorated[item]]
6
def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
2 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
23[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
0def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
4def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
3[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
7from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
7q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
24[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
2 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
2 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
27
30q = PriorityQueue[] q.put[[2*[-1], 'code']] q.put[[1*[-1], 'eat']] q.put[[3*[-1], 'sleep']] while not q.empty[]: next_item = q.get[] print[next_item]
31q = PriorityQueue[] q.put[[2*[-1], 'code']] q.put[[1*[-1], 'eat']] q.put[[3*[-1], 'sleep']] while not q.empty[]: next_item = q.get[] print[next_item]
32q = PriorityQueue[] q.put[[2*[-1], 'code']] q.put[[1*[-1], 'eat']] q.put[[3*[-1], 'sleep']] while not q.empty[]: next_item = q.get[] print[next_item]
33q = PriorityQueue[] q.put[[2*[-1], 'code']] q.put[[1*[-1], 'eat']] q.put[[3*[-1], 'sleep']] while not q.empty[]: next_item = q.get[] print[next_item]
34q = PriorityQueue[] q.put[[2*[-1], 'code']] q.put[[1*[-1], 'eat']] q.put[[3*[-1], 'sleep']] while not q.empty[]: next_item = q.get[] print[next_item]
6q = PriorityQueue[] q.put[[2*[-1], 'code']] q.put[[1*[-1], 'eat']] q.put[[3*[-1], 'sleep']] while not q.empty[]: next_item = q.get[] print[next_item]
36q = PriorityQueue[] q.put[[2*[-1], 'code']] q.put[[1*[-1], 'eat']] q.put[[3*[-1], 'sleep']] while not q.empty[]: next_item = q.get[] print[next_item]
30q = PriorityQueue[] q.put[[2*[-1], 'code']] q.put[[1*[-1], 'eat']] q.put[[3*[-1], 'sleep']] while not q.empty[]: next_item = q.get[] print[next_item]
31q = PriorityQueue[] q.put[[2*[-1], 'code']] q.put[[1*[-1], 'eat']] q.put[[3*[-1], 'sleep']] while not q.empty[]: next_item = q.get[] print[next_item]
39lambda expressionq = PriorityQueue[] q.put[[2*[-1], 'code']] q.put[[1*[-1], 'eat']] q.put[[3*[-1], 'sleep']] while not q.empty[]: next_item = q.get[] print[next_item]
33q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
34 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
42q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
6q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
36Using default Comparator Collections.reverseOrder[]q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
30q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
34 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
47q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
36Collections.reverseOrder[] method is used to get a reverse behavior of the default comparator. This is a by default comparator
injava.util package.q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
Example:
Java
q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
7 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
8[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
2 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
9 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
0[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
2 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
3 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
4 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
12[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
9def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
0def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
1def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
2 q.put[decorated[item]]
5q.put[decorated[item]]
6q.put[decorated[item]]
7
[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
6def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
0def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
4def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
3[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
7from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
7Phương pháp 2: Sử dụng bộ so sánh tùy chỉnh
Thejava.util.priorativequeue.] Phương thức chia sẻ một chức năng quan trọng của việc thiết lập và trả về bộ so sánh có thể được sử dụng để đặt hàng các phần tử trong một ưu tiên. Phương thức trả về giá trị null nếu hàng đợi tuân theo mẫu thứ tự tự nhiên của các phần tử.java.util.PriorityQueue.comparator[] method shares an important function of setting and returning the comparator that can be used to order the elements in a PriorityQueue. The method returns a null value if the queue follows the natural ordering pattern of the elements.
Example:
Java
q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
7 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
8[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
2 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
9 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
0[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
2 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
3 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
4 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
12[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
9def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
0def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
1def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
2 q.put[decorated[item]]
5q.put[decorated[item]]
6
def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
2 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
23q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
24[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
2 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
2 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
27q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
24[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
7q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
30q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
31 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
32q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
33q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
34 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
6q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
36q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
30q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
31 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
39q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
33q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
34 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
42q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
6q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
36q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
30q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
34 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
47q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
36q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
24from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
7q.put[decorated[item]]
6
q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
52[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
6def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
4def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
0def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
3[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
7from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
7Phương pháp 3: Sử dụng biểu thức Lambdalambda expression
Biểu thức Lambda Kể từ khi Java 8 đã sử dụng, hàm Lambda đặt tên cho các tham số đầu vào của nó A và B và Returns [B-A], về cơ bản là những gì lớp so sánh INT làm ngoại trừ nó trả về A-B. since Java 8 has come to use, lambda function names its input parameters a and b and returns [b-a], which is basically what the int comparator class does except it returns a-b.
Ví dụ: & nbsp;
Java
q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
7 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
8[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
2 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
9 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
0[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
2 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
3 [-3, 'sleep']
[-2, 'code']
[-1, 'eat']
4 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
12[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
9q.put[decorated[item]]
6
def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
2 q = PriorityQueue[]
q.put[[2*[-1], 'code']]
q.put[[1*[-1], 'eat']]
q.put[[3*[-1], 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
23[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
6def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
0def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
4def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
5>>> decorated[1, 'eat']
[-1, 1, 'eat']
>>> undecorated[-1, 1, 'eat']
[1, 'eat']
8def decorated[item]:
return [-item[0],] + item
def undecorated[item]:
return item[1:]
7[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
3[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
8from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
1[-3, 'sleep']
[-2, 'code']
[-1, 'eat']
1from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
7from queue import PriorityQueue
q = PriorityQueue[]
q.put[[2, 'code']]
q.put[[3, 'eat']]
q.put[[1, 'sleep']]
while not q.empty[]:
next_item = q.get[]
print[next_item]
#[1, 'sleep']
#[2, 'code']
#[3, 'eat']
7