Python, Queue.PriorityQueue uygulamasına sahiptir, ancak bir değerin var olup olmadığını (bulma (isim) veya benzerleri gibi) kontrol etmek için bir yöntem olmadığından, her değeri benzersiz bir şekilde yapmanın bir yolunu göremiyorum. Dahası, PriorityQueue'un, değer içinde kalması için önceliğe ihtiyacı vardır, bu yüzden de önceliğimi bilmek zorunda olduğum için değerinizi bile aramadım. PriorityQueue'da (0,5, myvalue) değerini değer olarak kullanırsınız ve daha sonra, tuple'ın ilk öğesiyle sıralanır.Python'da nasıl benzersiz bir değer önceliği kuyruğu yapabilirim?
Diğer taraftan collections.deque sınıfı, bir değerin var olup olmadığını kontrol etmek için bir işlev sunar ve kullanımda daha doğaldır (kilitleme olmadan, ancak atomiktir), ancak sıralaması için bir yol sunmaz. önceliği.
Heapq ile stackoverflow üzerinde başka uygulamalar da vardır, ancak heapq da değer içinde öncelik kullanır (örneğin, bir tuple'ın ilk konumunda), bu yüzden zaten var olan değerlerin karşılaştırılması için harika görünmez.
bir atom öncelik sırası yaratmanın en iyi yolu, benzersiz değerlerle (= birden çok iş parçacığı kullanılabilir) nedirCreating a python priority Queue
https://stackoverflow.com/questions/3306179/priority-queue-problem-in-python
? deger2
- Öncelik: 0.2, Değer İsterdim Ne
Örnek eklemek için 0.1, Değer: değer3 (Alýnacak) otomatik olarak ilk
- Öncelik: 0.4, Değer: deger1 (farklı önceliğini) olsa bile, yine ilave edilmemelidir
:) – sleepsort
belki pop get için daha iyi bir isim gibi yerleşik işlev adlarını kullanmamanızı öneriyoruz edeceğiz – DikobrAz