我能得到整數排列是這樣的:更有效的方法來獲得整數排列?
myInt = 123456789
l = itertools.permutations(str(myInt))
[int(''.join(x)) for x in l]
是否有更有效的方式來獲得在Python 整數排列,跳過創建一個字符串,然後加入生成的元組的開銷?對它進行定時,元組加入過程使得這個長度大於list(l)
。
添加支持信息
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]
我澄清,長於名單(L)' – jumbopap
我花了一些發佈timeit結果,以幫助澄清OP的問題的自由 –