说明
饭后闲来无事,就随便写写,就当看小说好了。
有这样一个段子:
深圳有一家奇葩网络公司,公司五点半下班,六点半有公司班车,没人逼你加班,但是为了能体面地坐着一人一座的大巴回家,大家愿意主动加班一小时;六点半准备坐班车回家时,就会想起另外一条制度:8点钟有东来顺的工作餐:样多,管饱,有水果。想想坐班车回家还得自己做饭,那就再主动加班一小时,吃了工作餐再回家呗。8点钟吃完工作餐准备回家,又想起一条公司制度:10点钟以后打车报销。一天干了十几个小时,谁还有力气挤公交?那就再主动加班2小时呗。这个公司特任性,从不逼员工加班。
其实呢,我司也差不多,干到8点半会有饭卡,直接去楼下食堂消费,所以每天4点半到5点之间,就需要一个同学去拿饭卡。
谁去拿呢?这是个问题...
新人去拿麽,呦,欺负新人啊
领导去拿麽,嘿,还真不把领导当回事啊
老人去拿麽,嘛,为啥不是新人去拿,还能勾搭行政小姐姐
.
.
好吧,那就让上天决定去拿吧,我们就摇骰子
解决
大致思路如下:
- 1.组内同学名单,生成一个列表
- 2.生成一个由随机数组成的列表
- 3.相同index值,随机数最小的那个同学去拿饭卡
代码如下:
from random import randint
print('-----开始摇奖-----')
print('\t.\n\t.\n\t.\n结果出来啦,如下:')
staff = ['龚x','张x','董xx','任x','田xx','张xx','施xx','汪x','衡'x,'郑x','李xx']
lenstaff = len(staff)
def rand():
'''
随机数生成,set去重
:return: 随机数
'''
try:
num = [randint(0, 100) for i in range(lenstaff)]
print(num)
if len(set(num)) == len(num):
return num
else:
return None
except:
print('请再试一次')
def select():
'''
选出数字最小的同学
:return:
'''
num = rand()
if num is not None:
dinner = dict(zip(staff, num))
dinner = sorted(dinner.items(), key=lambda x: x[1])
print(dinner)
print('{}最小,今天拿饭卡'.format(staff[num.index(min(num))]))
else:
print('有重复随机数,请再试一次')
哈哈,这样一来,问题解决啦,恭喜xxx全款喜提饭卡n张
中间好像也没涉及什么特别难的地方吧,可能会有一个面试可能遇到的问题,里面提供了解决方案。
Q:将dict按key或value排序
解决方案:
dinner = sorted(dinner.items(), key=lambda x: x[1])
上面是按value值排序,如果用key排序,则将 x[1] 改为x[0]即可
网友评论