“父亲的父亲叫什么?”
“叫爷爷”
“母亲的母亲叫什么?”
“叫外祖母(姥姥)”
——那妈妈的妈妈的爸爸的爷爷的弟弟的儿子
叫什么呢?
这个&*(*……&……%¥¥¥#@!……%&*(*)
尤其是在春节这个走亲访友的高峰期,
这时候便有一个问题摆在眼前,
许多远房亲戚都不认识,
叫错人怎么办?
过年总免不了要见各种亲戚,有比较亲的,但也有比较远的。很多时候,我们在远方亲戚面前都会“哑口无言”——妈啊!我该怎么称呼他/她?
更恐怖的就是,你问老妈,她回答你“我也不知道”...........
不要担心,小编今天主动带大家做一个”爆款走亲戚神奇“。
只要输入那个人跟你的关系,隔n多带人都可以算出来。
有了这款神器,从此走上人生巅峰不是梦想。
23333.........
不对这关系有点儿复杂。
搞错了再来:
这才是正确的打开方式。
想一款走亲戚神器的话首先是要了解各大关系:
.......................................
1.建立数据库(BUT该工作量十分庞大,这里只展示几个例子):
me = {'f':'父亲','m':'母亲','bb':'哥哥','sb':'弟弟','bs':'姐姐','ss':'妹妹','son':'儿子','dau':'女儿'} father = {'f':'爷爷','m':'奶奶','bb':'伯父','sb':'叔叔','bs':'姑妈','ss':'姑妈','son':['我','哥哥','弟弟'],'dau':['我','姐姐','妹妹']} mother = {'f':'姥爷','m':'姥姥','bb':'大舅','sb':'小舅','bs':'大姨','ss':'小姨','son':['我','哥哥','弟弟'],'dau':['我','姐姐','妹妹']}
........
2.建立中文名与变量的对应关系:
name2var = {'我':me,'父亲':father,'母亲':mother,'哥哥':big_bro,\
'弟弟':small_bro,'姐姐':big_sister,'妹妹':small_sister,\
'儿子':son,'女儿':daughter}
relation2char = dict(zip(me.values(), me.keys()))
import numpy as np
# 考虑返回值可能不止一个 如父亲的儿子可能为[‘我’,‘哥哥’,‘弟弟’]
def returnNext(names,relation):
return_name = []
for name in names:
return_name.append(name2var[name][relation2char[relation]])
return list(set(np.array(return_name).flatten())
3.使用一个函数,封装所有操作:
def getName(relation_name): relationships = relation_name.split('的') name = [relationships[0]] for relation in relationships[1:]: name = returnNext(name,relation) return name
结尾
文章就分享到这里,你学会了嘛?
完整的文章项目代码可以来小白解答学习的Python交流圈 大家一起学习、成长,Figthing!!
免费源码基地:💖私信小编06即可免费领取啦~
好啦,最后:那小编问大家爸爸的妈妈的爷爷的儿子叫什么嘞??评论区见。