mogę permutacji liczb całkowitych tak:Bardziej skuteczny sposób na uzyskanie permutacji całkowitych?
myInt = 123456789
l = itertools.permutations(str(myInt))
[int(''.join(x)) for x in l]
Czy jest bardziej efektywny sposób, aby uzyskać całkowite permutacje w Pythonie, omijając napowietrznej tworząc łańcuch, a następnie łączenie wygenerowanych krotki? W tym czasie proces łączenia krotek sprawia, że jest on trzykrotnie dłuższy niż list(l)
.
dodany informacje pomocnicze
myInt =123456789
def v1(i): #timeit gives 258ms
l = itertools.permutations(str(i))
return [int(''.join(x)) for x in l]
def v2(i): #timeit gives 48ms
l = itertools.permutations(str(i))
return list(l)
def v3(i): #timeit gives 106 ms
l = itertools.permutations(str(i))
return [''.join(x) for x in l]
I wyjaśnione, dłużej niż „listy (l)” – jumbopap
pozwoliłem sobie delegowania pewne rezultaty timeit celu wyjaśnienia problemu OP –