Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以n为基数递增_Python_Iteration_Base - Fatal编程技术网

Python 以n为基数递增

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 >&

我试图通过所有可能的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
>>> 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