Comment trier un tableau entier ( pas strong> une liste) sur place à Python 2.6? Existe-t-il une fonction appropriée dans l'une des bibliothèques standard? En d'autres termes, je recherche une fonction qui ferait quelque chose comme ceci: p> merci à avance! p> p>
3 Réponses :
Eh bien, vous ne pouvez pas le faire avec ou Vous pouvez convertir directement à partir d'un (code> array.array code> si vous avez déjà déjà: p> array.array code>, mais vous pouvez avec numpy.array code>:
Et cela semble être un tri en place. Bonne réponse.
En regardant le Array Docs , je ne vois pas une méthode de tri. Je pense que ce qui suit est à peu près aussi proche que possible d'utiliser des fonctions standard, bien qu'il soit vraiment en train de clocer l'ancien objet avec un nouveau avec le même nom: ou, vous pouvez écrire votre posséder. P> avec les informations supplémentaires des commentaires que vous matières de mémoire, cela semble inapplicable à votre situation; La solution numpy est la voie à suivre. Cependant, je vais laisser cela pour référence. P> p>
@steven a mentionné numpy.
Copies vs. in-place operation ----------------------------- Most of the functions in `numpy` return a copy of the array argument (e.g., `sort`). In-place versions of these functions are often available as array methods, i.e. ``x = np.array([1,2,3]); x.sort()``. Exceptions to this rule are documented.
Pourquoi avez-vous exclu l'utilisation d'une liste? Avez-vous profilé et avez-vous trouvé qu'il manque? Si vous devez utiliser un tableau et que vous en avez besoin triés, je suggère d'utiliser NUMPY, qui a une méthode de tri pour les tableaux.
@Steven oui, je l'ai profilé. Je travaille sur de grandes collections d'entiers qui correspondent à peine à la RAM. Les listes d'entiers sont au moins 3 fois plus grandes que les réseaux d'entiers, donc je ne peux donc pas les utiliser. Pourriez-vous (ou quelqu'un d'autre) pointer sur une fonction pertinente à Scipy / Numpy?
Commencez à docs.cipy.org/doc/numpy/reference/ROUNDINES. Sort.html . Notez que le tri par défaut renvoie une copie, mais
ndarray.sort code> est en place. (Je n'ai aucune expérience avec SciPy / Numpy, mais savez qu'il est bien respecté et très optimisé.)