最近领导安排了变量衍生的任务,记录一下初步的代码。
网上查了一圈之后,发现部分做数据的机构其实已经实现了智能化变量衍生了,但是咱也不知道他到底是咋衍生的,只能朝着这个方向慢慢摸索,有兴趣的朋友可以私信我一起讨论哇
初步的想法
- 提取落脚点
- 找寻基础维度的形容词
- 形容词+落脚点进行排列组合
代码如下:
from itertools import product
def get_value():
xingr={}
# 使用enter键结束输入
while 1:
name=input('请输入你的维度命名(注意顺序):')
if name=='':
break
else:
xingr[name]=[i for i in input('请输入变量的形容词(用逗号隔开):').split(',')]
xingr['luojiao']=[i for i in input('请输入变量的落脚点(用逗号隔开):').split(',')]
return xingr
def my_product(inp):
re_1=list((values for values in product(*inp.values())))
# product函数是生成一个迭代器,每次迭代生成的元素为一个元组,其中字典的笛卡尔积只对键进行交换
yansheng=[''.join(x) for x in re_1]
return yansheng
def get_yansheng(xingr):
length=len(xingr.keys())
if length<=1:
print('输入的维度必须大于等于2,请重新输入')
else:
yansheng=my_product(xingr)
return yansheng
xingr=get_value()
print('根据您输入的维度,得到衍生变量如下:')
print('-'*40)
yansheng=get_yansheng(xingr)
yansheng
最后得到的结果如下:
后面的一个难点在于如何去挖掘基础变量,这就需要积累足够多的业务经验了。怀挺!