第壹步:
我分析如果從壹堆數裏隨機抽取幾個,並且按原來的順序輸出的話,那麽至少要隨機兩次才能完成,第壹次隨機的值是確定隨機幾個數,第二次隨機是確定隨機的值。
第二步:
隨機抽取幾個可以用random.randint(1,n)這個函數來實現,這個n代表所要隨機列表的長度。
第三步:
上壹步出來壹個數決定此次隨機出幾個值出來,現在假定是n,再次隨機就是從列表裏隨機抽取n個值這個可以用random.sample(dict,n)這個方法實現,這個函數可以傳入壹個字典,和壹個數字返回壹個列表。
第四步:
得到的結果需要按原來的順序輸出,那麽存儲就需要考慮用dict了,因為字典的k-v特性可以實現找到原來的順序,我具體的實現如下:
import?random#random_number(a)函數的功能傳入壹個數,返回1到這個數的隨機數
def?random_number(a):
return?random.randint(1,a)
#print(random_number(4))
#random_list(a,b)函數的功能,傳入壹個字典a,和壹個數值b,
#1<=b<=a的長度,返回壹個擁有b的個數值是a中的key值的list
def?random_list(a,b):
return?random.sample(list(a),b)
a={1:'a',2:'j',3:'g',4:'h',5:'k',6:'i',7:'l',8:'f',9:'v',10:'b',11:2,12:5,13:'x'}
b=len(a)
#print(random_list(a,b))
#random_dictvalue函數的功能,傳入壹個字典a和壹個列表b,返回以b為key,a中對應的value的值
def?random_dictvalue(a,b):
b.sort()
for?i?in?b:
print(a.get(i),end='?')
print(random_dictvalue(a,random_list(a,random_number(b))))
#?result
>>>?================================?RESTART?================================
>>>?
a?f?None
>>>?================================?RESTART?================================
>>>?
g?i?None
>>>?================================?RESTART?================================
>>>?
a?j?h?l?v?b?2?5?x?None