在群裡看到了乙個面試題,想了兩種解法,不知道符不符合要求,記錄如下:
題目:有n個人,每人備乙個聖誕禮物,現需要寫乙個程式,隨機互動禮物,要求:自己不能換到自己的禮物,用python實現。
方法一:
構造二維列表儲存參與者的名字和所帶禮物,使用random.choice()隨機選擇禮物。
import random
lsgiftout = #儲存交換後的結果
n = len(lsgiftin)#參與人數
gifts = [i[1] for i in lsgiftin]#未分配出去的禮物
for x in range(n):
flag = 0
person = lsgiftin[x][0]
mygift = lsgiftin[x][1]
if mygift in gifts:
flag = 1
gifts.remove(mygift)
getgift = random.choice(gifts)#隨機分配禮物
gifts.remove(getgift)
if flag:
print(lsgiftout)
方法二:
構造字典儲存參與者的姓名和禮物,其中姓名為key,禮物為value,使用字典的popitem()方法隨機返回禮物。
dictgiftout = {}
persons = list(dictgiftin.keys())
for p in persons:
flag = 0#標記自己帶來的禮物是否還未分配出去
if p in dictgiftin:
flag = 1
mygift = dictgiftin.pop(p)#如果自己帶來的禮物還未分配,則去掉該禮物
getgift = dictgiftin.popitem()#隨機返回並移除一對key-value值
dictgiftout[p] = getgift[1]#得到的禮物
if flag:
dictgiftin[p] = mygift#將自己的禮物添到未分配禮物中
print(dictgiftout)#輸出禮物分配情況
the end ~
交換聖誕禮物
上周五,在公司裡搞了 交換聖誕禮物 活動。7人,7份禮物,一些零食。禮物特寫。包裝奇特猜不出裡面裝的是什麼。抽到1號的同學挑選了乙個禮物,開啟。抽到2號的同學選取了外包裝最好看也最小的禮物,開啟。3號同學通過搖晃禮物聽聲音的方式,選出了這個。到目前為止沒有人選擇交換禮物。遊戲平靜地進行著。4號同學。...
團隊遊戲 交換聖誕禮物
在聖誕節即將來臨的時候,這樣乙個小遊戲也許能夠使你的團隊凝聚力更強,關係更融洽。假設你的團隊有n個成員,每人準備乙份禮物,金額控制在乙個範圍內,譬如50元,上下不超過10元。換句話說就是每人用50元去買乙份創意禮物,或者古怪禮物,而且最好能包裝得讓人無法猜測出是什麼。在聖誕前的某個工作日下午,周四或...
python 聖誕節隨機交換禮物
import random 隨機互動禮物,員工abcde分別有禮物12345編號,每個員工不能抽到自己的 people 所有的禮物編號 gifts i for i in people.values mans j for j in people.keys def get gift 隨機抽取禮物 if ...