Comment implémenter un index bitmap en Python
Le code est le suivant :
class Bitmap(object): def __init__(self, max): self.size = self.calcElemIndex(max, True) self.array = [0 for i in range(self.size)] def calcElemIndex(self, num, up=False): '''up为True则为向上取整, 否则为向下取整''' if up: return int((num + 31 ) / 31) #向上取整 return num / 31 def calcBitIndex(self, num): return num % 31 def set(self, num): elemIndex = int(self.calcElemIndex(num)) byteIndex = self.calcBitIndex(num) elem = self.array[elemIndex] self.array[elemIndex] = elem | (1 << byteIndex) def clean(self, i): elemIndex = int(self.calcElemIndex(i)) byteIndex = self.calcBitIndex(i) elem = self.array[elemIndex] self.array[elemIndex] = elem & (~(1 << byteIndex)) def test(self, i): elemIndex =int(self.calcElemIndex(i)) byteIndex = self.calcBitIndex(i) if self.array[elemIndex] & (1 << byteIndex): return True return False MAX = 879 suffle_array = [45, 2, 78, 35, 67, 90, 879, 0, 340, 123, 46] result = [] bitmap = Bitmap(MAX) for num in suffle_array: bitmap.set(num) for i in range(MAX + 1): if bitmap.test(i): result.append(i) print ('原始数组为: %s' % suffle_array) print ('排序后的数组为: %s' % result)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



ClassMethodsinpyThonareBoundTotheclassandNottoiNstances, permettant à ce que

Asyncio.Queue est un outil de file d'attente pour une communication sécurisée entre les tâches asynchrones. 1. Le producteur ajoute des données via AwaitQueue.put (élément), et le consommateur utilise AwaitQueue.get () pour obtenir des données; 2. Pour chaque élément que vous traitez, vous devez appeler la file d'attente.task_done () pour attendre que la queue.join () termine toutes les tâches; 3. Utilisez aucun comme signal final pour informer le consommateur de s'arrêter; 4. Lorsque plusieurs consommateurs, plusieurs signaux finaux doivent être envoyés ou toutes les tâches ont été traitées avant d'annuler la tâche; 5. La file d'attente prend en charge la définition de la capacité limite maxsize, les opérations de put et d'obtenir automatiquement la suspension et ne bloquent pas la boucle d'événement, et le programme passe enfin CANC

Des expressions régulières sont implémentées dans Python via le module RE pour la recherche, la correspondance et la manipulation des chaînes. 1. Utilisez re.search () pour trouver la première correspondance de toute la chaîne, re.match () ne correspond qu'au début de la chaîne; 2. Utilisez des supports () pour capturer les sous-groupes correspondants, qui peuvent être nommés pour améliorer la lisibilité; 3. Re.findall () renvoie toutes les correspondances non chevauchantes, et re.finditer () renvoie l'itérateur de l'objet correspondant; 4. Re.sub () remplace le texte correspondant et prend en charge le remplacement de la fonction dynamique; 5. Les modèles communs incluent \ d, \ w, \ s, etc., vous pouvez utiliser re.ignorecase, re.multiline, re.dotall, re.

Pour déboguer une application Python distante, vous devez utiliser Debugpy et configurer le transfert de port et le mappage de chemin: Tout d'abord, installez Debugpy sur la machine distante et modifiez le code pour écouter le port 5678, transférez le port distant vers la zone locale via le tunnel SSH, puis configurez correctement les mappages de chemins locaux et de remotoot. Enfin, démarrez l'application et connectez-vous au débogueur pour réaliser le débogage de points d'arrêt distant, la vérification des variables et le pas de code. L'ensemble du processus dépend de Debugpy, de la transfert de port sécurisée et de la correspondance précise du chemin.

EnsurePythonisinstalledbyrunningpython--versionorpython3--versionintheterminal;ifnotinstalled,downloadfrompython.organdaddtoPATH.2.InSublimeText,gotoTools>BuildSystem>NewBuildSystem,replacecontentwith{"cmd":["python","-

Pour exécuter les scripts Python, vous devez configurer le système de construction de SublimeText: 1. Assurez-vous que Python est installé et disponible sur la ligne de commande; 2. Créez un nouveau système de construction dans sublimeText, entrez {"cmd": ["python", "- u", "$ file"], "file_regex": "^ [] file \" (...?) \ ", Line ([0-9] *)", "Selector": & qu

InstallandconfigurelspwithapythonlanguageServerlikepylSpForide-likefeaturessuchassaferename, finalreferences et gotodefinition.2.usesublimeText’sFindInfiles wholewordAndregexoptionsforccarefulmanualrefactoringsfiles.3DegrateExternalToolslikerer

Le moyen le plus efficace de trouver des éléments communs de deux ou plusieurs listes consiste à utiliser le fonctionnement de l'intersection de l'ensemble. 1. Convertissez la liste en un ensemble et utilisez la méthode & Operator ou .Inthesection () pour trouver l'intersection, par exemple, Common = list (set (list1) & set (list2)); 2. Pour plusieurs listes, vous pouvez utiliser SET (list1) .Inthesection (set (list2), set (list3)) ou set.INTERSENET (* map (set, lists)) pour réaliser un traitement dynamique; 3. Faites attention à la déduplication désordonnée et automatique. Si vous devez maintenir l'ordre, vous pouvez traverser la liste originale et combiner le jugement défini.
