Ravi de vous rencontrer, c'est cells_comp. Moi, qui était un spécialiste du ROM, j'ai commencé Qiita à minuit. Je suis désolé que le premier article à commémorer soit un si mauvais article, mais j'aimerais publier ce que j'ai proposé pour le moment.
Si vous voulez trier les éléments de list (l) aléatoirement en Python, réfléchissez simplement
--Trier par random.shuffle (l) --Trier par l2 = random.sample (l, len (l)) --Correctement, "l'acquisition aléatoire du nombre spécifié de la liste sans duplication" est effectuée. --Le nombre spécifié = tous les éléments, le résultat est donc une liste mélangée.
Je pense que cela sortira. Au fait, laquelle de ces deux méthodes est la plus rapide? Vous pouvez entendre une voix disant ** Utilisez numpy si vous voulez dire vitesse **, mais pardonnez-moi s'il vous plaît.
Python 3.5.5 Intel® Core™ i7-6700 3.4GHz Windows10 (WSL) Ubuntu 16.04 LTS
La liste cible contient des entiers.
import random
import time
if __name__ == '__main__':
l = [i for i in range(1000000)]
start = time.time()
random.shuffle(l)
elapsed_time = time.time() - start
print("elapsed_time:" + str(format(elapsed_time)) + "s")
résultat
elapsed_time:0.6656289100646973s
import random
import time
if __name__ == '__main__':
l = [i for i in range(1000000)]
start = time.time()
l2 = random.sample(l,len(l))
elapsed_time = time.time() - start
print("elapsed_time:" + str(format(elapsed_time)) + "s")
résultat
elapsed_time:0.7895145416259766s
Oui, random.shuffle () est environ 20% plus rapide. Après tout, ce n'est pas optimal car il s'agit à l'origine d'une fonction d'extraction aléatoire.
import random
import time
import numpy
if __name__ == '__main__':
l = [i for i in range(1000000)]
start = time.time()
numpy.random.shuffle(l)
elapsed_time = time.time() - start
print("elapsed_time:" + str(format(elapsed_time)) + "s")
résultat
elapsed_time:0.1087648868560791s
***la fin! Fermé! c'est tout! Tout le monde s'est dissous! *** ***
Oui, c'est mon premier message. J'avais tellement peur que je ne l'ai pas posté jusqu'à présent, mais quand je l'essaye, c'est facile. C'est un message auto-satisfaisant, mais j'espère qu'il aidera même une personne. Je souhaite continuer à publier en temps opportun. Eh bien, merci pour votre coopération.
Recommended Posts