生成彩票号码-将R语句转换为Python
我在R中有以下函数来生成10个随机彩票号码:生成彩票号码-将R语句转换为Python,python,r,python-3.x,Python,R,Python 3.x,我在R中有以下函数来生成10个随机彩票号码: sprintf("%05d", sort(sample(0:99999, 10))) 输出: "00582" "01287" "01963" "10403" "13274" "17705" "23798" "32808" "33668" "35794" [208, 10724, 12078, 27425, 34903, 49666, 60057, 67482, 68730, 78811] 我将其转换为Python,如下所示: print(s
sprintf("%05d", sort(sample(0:99999, 10)))
输出:
"00582" "01287" "01963" "10403" "13274" "17705" "23798" "32808" "33668" "35794"
[208, 10724, 12078, 27425, 34903, 49666, 60057, 67482, 68730, 78811]
我将其转换为Python,如下所示:
print(sorted(sample(range(99999), 10)))
输出:
"00582" "01287" "01963" "10403" "13274" "17705" "23798" "32808" "33668" "35794"
[208, 10724, 12078, 27425, 34903, 49666, 60057, 67482, 68730, 78811]
在第一种情况下,我得到的数字是5位数,而在第二种情况下,数字最多可以有5位数,但也可以更少
那么,有没有类似的方法来获取5位数字的列表(或第一种情况下的字符串)?您可以将其与map
组合起来
print(*map('{:05}'.format, sorted(sample(range(99999), 10))))
在这种情况下,星号。换句话说,它从给定的(本例中为映射)生成位置参数
您还可以将彩票号码存储为字符串列表
# Again using a map
ns = list(map('{:05}'.format, sorted(sample(range(99999), 10))))
# Using a list comprehension
ns = ['{:05}'.format(n) for n in sorted(sample(range(99999), 10))]
请注意,python是在[start,stop]中打开的,因此使用
对于从0到99999的值范围。您可以组合和map
,只需一个
print(*map('{:05}'.format, sorted(sample(range(99999), 10))))
此上下文中的星号。换句话说,它从给定的(本例中为映射)生成位置参数
您还可以将彩票号码存储为字符串列表
# Again using a map
ns = list(map('{:05}'.format, sorted(sample(range(99999), 10))))
# Using a list comprehension
ns = ['{:05}'.format(n) for n in sorted(sample(range(99999), 10))]
请注意,python是在[start,stop]中打开的,因此使用
用于从0到99999的值范围。您将需要输入您的字符串
out = []
for number in sorted(sample(range(99999), 10))):
out.append('{:05d}'.format(number))
print(out)
您将需要删除您的字符串
out = []
for number in sorted(sample(range(99999), 10))):
out.append('{:05d}'.format(number))
print(out)
我喜欢使用
map
和解压缩:)具有打印功能的优点之一:P它与sep=“,”一起使用时非常可爱
例如。@Ilja映射前的星号是什么?*
操作符打包和解包容器。在*映射
的情况下,解包映射
生成器的迭代器(对于python3对于python2,解包列表)所以不要打印<代码> <代码>打印内容。@ AlxyLoar如果答案适合你的需要,你会考虑接受它吗?我喜欢使用<代码> map < /COD>和unZip:)具有打印功能的优点之一:P和“代码> SEP =”一起使用是很可爱的。
例如。@Ilja映射前的星号是什么?*
操作符打包和解包容器。在*映射
的情况下,解包映射
生成器的迭代器(对于python3对于python2,解包列表)所以,如果不打印“<代码> <代码>”,则打印内容。@ AlxyLoLar,如果答案适合您的需要,您会考虑接受吗?使用<代码> Range>>(<代码)> <代码>随机。SyPrP()/代码>对于Python 3来说是快速和高效的。但是如果您使用Python 2,则<代码> Rangee()
将在内存中构建一个包含100000个整数的完整列表。相反,请使用xrange()
。将range()
与random一起使用。对于Python 3,sample()
速度快且内存效率高。但是如果使用Python 2,range()
将在内存中构建一个包含100000个整数的完整列表。相反,请使用xrange()
。