Python 以n为基数递增
我试图通过所有可能的base-n数字递增,其中数字由字符列表表示 比如说, 对于基数为5的数字,其中n=5限制在4个位置,基数为5的数字由列表表示:Python 以n为基数递增,python,iteration,base,Python,Iteration,Base,我试图通过所有可能的base-n数字递增,其中数字由字符列表表示 比如说, 对于基数为5的数字,其中n=5限制在4个位置,基数为5的数字由列表表示: digits=['a','b','c','d','e'] 递增看起来像 a, b, c, d, e, aa, ab, ac, ad, ae, ba, bb, bc, ... , eeee 在python中,当n=5或n=105时,最实用的方法是什么 >>> from itertools import product >&
digits=['a','b','c','d','e']
递增看起来像
a, b, c, d, e, aa, ab, ac, ad, ae, ba, bb, bc, ... , eeee
在python中,当n=5或n=105时,最实用的方法是什么
>>> from itertools import product
>>> base = 3
>>> ["".join(item) for i in range(1, base) for item in product('abcde', repeat=i)])
['a',
'b',
'c',
'd',
'e',
'aa',
'ab',
'ac',
'ad',
'ae',
'ba',
'bb',
'bc',
'bd',
'be',
'ca',
'cb',
'cc',
'cd',
'ce',
'da',
'db',
'dc',
'dd',
'de',
'ea',
'eb',
'ec',
'ed',
'ee']
当n=5或n=105时,python中最实用的方法是什么
我会说,根本不要创建列表。你可能会耗尽计算机的内存。最好使用迭代器,并在需要时使用该值。这正是产品返回迭代器的原因。您可以通过以下方式获得结果
>>> from itertools import product
>>> base = 3
>>> ["".join(item) for i in range(1, base) for item in product('abcde', repeat=i)])
['a',
'b',
'c',
'd',
'e',
'aa',
'ab',
'ac',
'ad',
'ae',
'ba',
'bb',
'bc',
'bd',
'be',
'ca',
'cb',
'cc',
'cd',
'ce',
'da',
'db',
'dc',
'dd',
'de',
'ea',
'eb',
'ec',
'ed',
'ee']
当n=5或n=105时,python中最实用的方法是什么
我会说,根本不要创建列表。你可能会耗尽计算机的内存。最好使用迭代器,并在需要时使用该值。这正是乘积返回迭代器的原因。那么,你有两个输入吗:数组数字=['a','b','c','d','e']n可以通过获取数组的大小来获得,并且maximumNumberOfDigits=4?实际上只有一个输入maximumNumberOfDigits,因为正如你提到的,n来自lendigits那么,你有两个输入吗:数组数字=['a'、'b'、'c'、'd'、'e']n可以通过获得该数组的大小和maximumNumberOfDigits=4来获得?基本上只有一个输入maximumNumberOfDigits,因为正如您所提到的,n来自lendigits