Python 隨機交換聖誕禮物

2021-09-20 07:33:28 字數 1168 閱讀 8719

在群裡看到了乙個面試題,想了兩種解法,不知道符不符合要求,記錄如下:

題目:有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 ...