Joh*_*ohn 1 python iteration base
我试图递增所有可能的base-n数字,其中数字由字符列表表示.
例如,
对于基数为5的数字(其中n = 5)限制为4个位置,基数为5的数字由列表表示:
digits=['a','b','c','d','e']
Run Code Online (Sandbox Code Playgroud)
增量看起来像
a, b, c, d, e, aa, ab, ac, ad, ae, ba, bb, bc, ... , eeee
Run Code Online (Sandbox Code Playgroud)
什么是蟒蛇最务实的方法来做到这一点,其中n=5或n=105
你可以itertools.product像这样得到结果
>>> 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']
Run Code Online (Sandbox Code Playgroud)
在n = 5或n = 105的情况下,python中最实用的方法是什么?
我想说,根本不要创建列表.你可能会耗尽计算机的内存.更好地使用迭代器并在需要时使用该值.这正是product返回迭代器的原因.
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |