import random
def get_number(size):
result = [random.randint(1,9)]
digits = list(range(0,10))
digits.remove(result[0])
if(size > 1):
result += random.sample(digits,size-1)
return ''.join(map(str,result))
print(get_number(4))
我解决了这个问题,但我觉得这很笨拙。 我怎样才能更有效,更优雅地做到这一点?
答案 0 :(得分:1)
Shuffle是@jonrsharpe建议的方式:
import random
def get_number(size):
l = [ str(i) for i in list(range(10))]
while l[0] == '0':
random.shuffle(l)
return int("".join(l[:size]))
限制:
答案 1 :(得分:0)
只需使用shuffle:
import string
x = list(string.digits)
random.shuffle(x)
print int(str(random.choice(range(1, 10))) + "".join(x[:3]))