gpt4 book ai didi

python - 使用 Python 创建一组唯一的长度为 L 的值

转载 作者:行者123 更新时间:2023-11-30 22:06:49 24 4
gpt4 key购买 nike

我需要创建一个指定长度的唯一值列表。我目前这样做的方式是使用

[str(i+1).ljust(subscriber_length, "0") for i in range(count)]

然而,这并没有给出唯一的数字,就像订阅者长度 > 9 一样,n、n0 和 n00 都给出相同的值,例如,1、10 和 100 都给出 100 作为值。

我知道一定有更好的方法来做到这一点。

预期的输出需要是长度为 (subscriber_length) 的数字字符串(目前数字很好),将其插入到 CSV 文件中并进行处理,因此前面的 0 不起作用。

例如,如果订阅者长度为 7,则可接受的范围为

|ID     |
|1000000|
|1000001|
|1000002|

因为这是测试数据,值是什么并不重要,重要的是它们是唯一的,并且前面的 0 不可能被删除。

最佳答案

range 函数支持设置起始值,因此您可以将其设置为合适的值,然后将每个值转换为 str。

如果您希望标识符长度为七个字符,请将起始值设置为 1000000 (10 ** 6):

>>> count = 100
>>> subscriber_length = 7
>>> start = 10 ** (subscriber_length -1)
>>> end = start + count
>>> L = [str(i) for i in range(start, end)]

# There's no duplication
>>> len(L) == len(set(L)) == count
True

# All the values are the correct length
>>> all(len(x) == subscriber_length for x in L)
True

该代码对于长度大于 9 的情况仍然有效。

>>> count = 100
>>> subscriber_length = 12
>>> start = 10 ** (subscriber_length -1)
>>> end = start + count
>>> L = [str(i) for i in range(start, end)]
>>> len(L) == len(set(L)) == count
True
>>> all(len(x) == subscriber_length for x in L)
True

关于python - 使用 Python 创建一组唯一的长度为 L 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52627273/

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