![](/img/trans.png)
[英]How to generate a random 4 digit number not starting with 0 and having unique digits?
[英]How to generate effectively a random number that only contains unique digits in Python?
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))
我解決了這個問題,但我覺得這很笨拙。 我怎樣才能更有效,更優雅地做到這一點?
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]))
限制:
只需使用shuffle:
import string
x = list(string.digits)
random.shuffle(x)
print int(str(random.choice(range(1, 10))) + "".join(x[:3]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.