j'essaie de tester deux pour définir la liste:Python concatenate SET ou LIST
Dans la première de chaque liste, puis Créer un ensemble à l'union ou le jeu de résultats créez une liste le retour de l'ensemble de la liste.
Mon résultat ressemble à n'importe quelle façon d'utiliser, est-ce le cas? Ou j'ai une logique d'erreur dans ma recherche, ou peut-être exister le meilleur moyen pour une telle union?
import time
def set_from_set(*args):
l = set()
return set().union(*args)
def set_from_list(*args):
l = []
for larg in args:
l += larg
return set(l)
l1 = [x for x in range(1000000)]
l2 = [x for x in range(1000000)]
l3 = [x for x in range(1000000)]
dl1, dl2 = 0, 0
for x in range(100):
start = time.time()
set_from_list(l1, l2, l3)
dl1 += time.time() - start
for x in range(100):
start = time.time()
set_from_set(l1, l2, l3)
dl2 += time.time() - start
print(dl1, dl2)
Résultat:
19,815733194351196 16,40732741355896
Votre 'set_from_set' ne construit pas réellement l'union que vous voulez; il construit juste un tas d'ensembles intermédiaires et les jette, puis retourne l'ensemble vide que vous avez construit sur la première ligne. – user2357112
Pourquoi ne pas simplement 'set(). Union (l1, l2, l3)'? – user2357112
@ user2357112 en vrai je sais combien de liste je vais avoir –