Python 随机生成随机长度的随机数字字符串的元组列表
出于模拟目的,我想生成一个字符串对列表。每个字符串对由两个字符串组成。每个字符串由随机生成的数字组成。字符串的长度也是随机数。如何使用Python 随机生成随机长度的随机数字字符串的元组列表,python,python-2.7,list,numpy,scipy,Python,Python 2.7,List,Numpy,Scipy,出于模拟目的,我想生成一个字符串对列表。每个字符串对由两个字符串组成。每个字符串由随机生成的数字组成。字符串的长度也是随机数。如何使用Numpy实现此功能?这是一个无限的生成器。您可以获取它的一部分(如最后一行所示),也可以直接对其进行迭代: import itertools import random def one_string(): l = random.randint(1, 5) return "".join(random.choice("0123456789") fo
Numpy
实现此功能?这是一个无限的生成器。您可以获取它的一部分(如最后一行所示),也可以直接对其进行迭代:
import itertools
import random
def one_string():
l = random.randint(1, 5)
return "".join(random.choice("0123456789") for _ in range(l))
def string_pairs():
while True:
yield one_string(), one_string()
print(list(itertools.islice(string_pairs(), 10)))
产生:
[('840', '452'), ('20', '4651'), ('784', '589'), ('1', '08211'), ('809', '2103'), ('48975', '46884'), ('307', '83913'), ('88512', '212'), ('57', '11772'), ('38', '14')]
你不需要
numpy
就能得到如此简单的结果。您所需要的只是以下列表:
上述解决方案将返回10对随机数字符串,每个字符串的最大长度为5位random.randint
此处将生成介于0
到99999
之间的随机数,由于选择是随机的,因此位数也将是随机的。然后简单地键入cast-to-string以获得所需的结果
样本结果:
[('8655', '9023'), ('7398', '7465'), ('8595', '4994'), ('8532', '9251'), ('196', '5911'), ('4219', '6240'), ('7628', '8162'), ('256', '9675'), ('4466', '4814'), ('6459', '3798')]
为什么是努比?这是针对数组和矩阵操作的,而这个问题不是。到目前为止,您尝试了什么?请发布您的代码+1,我不太清楚OP为什么要使用
numpy
执行此操作。哦,有一些使用纯Python的很好的解决方案,比如这个。为什么不使用string模块中的string.digits,而不是键入整个序列呢?因为如果我键入它,我可以更容易地看到它在做什么,而“0123456789”比string.digits短两个字符。我们认为在Python的未来版本中,数字集会发生变化吗?
[('8655', '9023'), ('7398', '7465'), ('8595', '4994'), ('8532', '9251'), ('196', '5911'), ('4219', '6240'), ('7628', '8162'), ('256', '9675'), ('4466', '4814'), ('6459', '3798')]