创建一个大的随机 base-29 数字的 Pythonic 方法
Pythonic way to create a big random base-29 number
我正在创建一个程序,它必须在 python 中处理相当大的整数。范围为 0-104677。在内部,我用 base-29
整数表示它们。因此使用字母表:012345679ABCDEFGHIJKLMNOPQRS
.
我创建了一个函数来在 python 中创建任意长度的随机 base-29
变量。但是有没有更短、更 pythonic 的方式呢? (如果这甚至是一种正确的方法)。
创建随机 29 进制数的函数:
import random
def random_base(base_number = 29, length = 10)
alfabet = "012345679ABCDEFGHIJKLMNOPQRS"
return [alfabet[random.randint(0,base_number - 1)] for _ in range(length)]
因此,是否有一些内置的 python 函数可以执行此操作,或者这是可行的方法吗?
如有不明之处请评论!
提前致谢
您可以使用slices and random.choices
import random
def random_base(base_number = 29, length = 10):
alfabet = "0123456789ABCDEFGHIJKLMNOPQRS"
return "".join(random.choices(alfabet[:base_number], k=length))
我正在创建一个程序,它必须在 python 中处理相当大的整数。范围为 0-104677。在内部,我用 base-29
整数表示它们。因此使用字母表:012345679ABCDEFGHIJKLMNOPQRS
.
我创建了一个函数来在 python 中创建任意长度的随机 base-29
变量。但是有没有更短、更 pythonic 的方式呢? (如果这甚至是一种正确的方法)。
创建随机 29 进制数的函数:
import random
def random_base(base_number = 29, length = 10)
alfabet = "012345679ABCDEFGHIJKLMNOPQRS"
return [alfabet[random.randint(0,base_number - 1)] for _ in range(length)]
因此,是否有一些内置的 python 函数可以执行此操作,或者这是可行的方法吗?
如有不明之处请评论!
提前致谢
您可以使用slices and random.choices
import random
def random_base(base_number = 29, length = 10):
alfabet = "0123456789ABCDEFGHIJKLMNOPQRS"
return "".join(random.choices(alfabet[:base_number], k=length))