gpt4 book ai didi

python - 以 n 为基数递增

转载 作者:太空宇宙 更新时间:2023-11-04 08:52:13 29 4
gpt4 key购买 nike

我正在尝试递增所有可能的 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

n=5n=105 处执行此操作的 python 中最实用的方法是什么?

最佳答案

你可以用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']

What is the most pragmatic approach in python to do this where n=5 or n=105

我会说,根本不要创建列表。您可能会耗尽计算机的内存。最好使用迭代器并在需要时使用该值。这正是 product 返回迭代器的原因。

关于python - 以 n 为基数递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33967824/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com