生成彩票号码-将R语句转换为Python

生成彩票号码-将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

我在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(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()