python中难的算法_一个python的比较难的算法,有懂的人可以进来一下

问 题

我的需求:

结构数据是这样的:

要求按照这样的公式:

组合一: 时间词+地方词+动词+等级+名词+价格词;

比如

2016年深圳大鹏新区给健康全身检查要多少钱

就是按照这样的公式组合出来的关键词

那么有什么办法用最短的办法来实现,我下面是我的算法,用pandas的算法:

for times in df[df["时间词"].notnull()]["时间词"]:

for area in df[df["地方词"].notnull()]["地方词"]:

for dong in df[df["动词"].notnull()]["动词"]:

for leave in df[df["等级"].notnull()]["等级"]:

for name in df[df["名词"].notnull()]["名词"]:

for price in df[df["价格词"].notnull()]["价格词"]:

data = (times+area+dong+leave+name+price)

但是这样的代码太不优雅,而且封装成函数太难~

我想要的效果是这样的:

比如:

我写一个公式

cols = ["时间词","地方词","动词","等级","名词","价格词"]

#或则是

cols = ["地方词","动词","等级","名词","价格词"]

然后把这个列表传入一个函数中,就可以得出我上面的效果~

这个要如何实现?

补充一下,如果看不懂提问的人可以这样理解这个题目

我有3个列表:

a = ["1","2","3","4","5"]

b = ["a","b","c"]

c = ["A","B"]

我要这样的组合: a中的每个元素和b,c中的每个元素都进行组合

这个一个很简单的多重循环就可以解决:

for A in a:

for B in b:

for C in c:

print (A+B+C)

这当然很简单,但是假如我有10000个这样的列表要重组?

难不成要手工复制黏贴每个循环10000次?这显然不太现实

在python中有没有比较好的函数或是比较好的方法来实现这个东西?

改问题已经解决,要感谢Taku的解答.完全符合需求

附上我修改后的代码

import itertools

def zuhe(cols):

b = pd.Series()

for col in cols:

b = b.append(pd.Series({col:list(df[df[col].notnull()][col])}))

for x in itertools.product(*(b.values)):

print (x)

zuhe(cols = ["时间词","地方词","动词"])

只需要传入需要组合的列表词,就可以得到结果!!

解决方案

试试itertools

import itertools

for x in itertools.product([1,2,3,4],[2,3,4],[1,1,2,2,3,3]):

print x

哈哈,其实就是一个求笛卡尔积的问题

要学会组织关键词,善用搜索

扫一扫关注IT屋

微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 进程管理机制,Android的进程管理机制

Linux系统对进程的管理方式是一旦进程活动停止,系统就会结束该进程。Android系统虽基于Linux,但在进程管理上,采取了另外一种机制。当当前进程活动停止时,系统并不会立即结束当前进程,而是会将该进程保存在内存中&…

IOS 获取农历方法(转)

声明:以下为使用iOS的 NSChineseCalendar 网上之前发现有人说这个方法不是完全准确,有些日期会显示的不对,本人没有验证过,也实在懒得用C那套方法去实现。 另外我做的不过是个简单的功能,还不包括什么节气 节日那些复杂…

AI初创公司都去哪了?2019年科技公司“五巨头”收购盘点

大数据文摘出品来源:venturebeat人工智能人才的争夺大战愈演愈烈。 今年,Pinterest的首席技术官Vanja Josifovski离职加入了Airbnb,而Pinterest则聘请了沃尔玛的首席技术官Jeremy King来领导工程团队。此外,包括谷歌和苹果在内的所…

angular element()

使用angular.element()获取一个dom的方法。 1.可以使用jquery的选择器 2.可以使用javascript的原生查找元素的方法 下面是angular.element()提供的方法 <input type"checkbox" class"input" /><input type"text" class"input1&quo…

电脑连接android手机测试,关于如何将手机画面投屏到PC的测试(Android)

如何将手机画面投屏到PC上并进行控制呢?为什么要投屏一边LOL ,一边朋友圈?办公呢? 我手机插上充电就好,电脑上刷刷手机呢?哈哈准备工具下载工具如何使用无线使用写在最后后续为什么要投屏我最近买了个带鱼屏, 屏幕长到用不完的地步了. 总想折腾折腾看看还能玩出来什么花样手…

【前沿科技】看完这篇文章前,你绝对想象不到欧美航空机器人竟然发展到这个程度了!...

来源&#xff1a;中国机器人网《工程》杂志撰文认为&#xff0c;工业机器人在许多行业中已经建立了良好的基础&#xff0c;并且通常与现代化的先进制造系统相关联&#xff0c;但是&#xff0c;航空制造仍然严重依赖熟练的手工作业。航空制造中采用机器人的一个主要障碍是缺乏精…

beautifulsoup网页爬虫解析_Python爬虫快速入门,静态网页爬取

在开始之前&#xff0c;请确保你的电脑上已经安装好了BeautifulSoup库&#xff0c;可以通过在命令行中输入pip install beautifulsoup4来进行安装。一、数据解析在爬取之前&#xff0c;我们需要检测下响应状态码是否为200&#xff0c;如果请求失败&#xff0c;我们将爬取不到任…

android获取小程序音频时长,微信小程序获取音频时长与实时获取播放进度

首先在没有播放音频之前&#xff0c;居然拿不到总时长但是在播放之后也需要设置setTimeout来获取所以在监听音频播放进度更新事件中获取。顺便获取当前播放进度按照官方的写法audioPlayed: function () {myAudio.play()setTimeout(() > {myAudio.onTimeUpdate(() > {cons…

Shell awk文本处理,shell脚本编写

Shell awk文本处理,shell脚本编写 一:内容包含awk、变量、运算符、if多分支 <a>语法糖&#xff1a; awk [options] commands files option   -F  定义字段分隔符,默认的分隔符是连续的空格或制表符      使用option中的-F参数定义间隔符号      用$1,$2,$3…

当超级智能崛起时……

来源&#xff1a;资本实验室“大雷&#xff0c;你脑子没出啥毛病吧&#xff1f;”李春花轻声问道&#xff0c;眼睛里满是关切的神色。“喔&#xff0c;你放心&#xff0c;俺没事&#xff01;上次的事故之后&#xff0c;我的芯片和操作系统都已经升级到最新版本啦&#xff01;”…

小米小爱音箱Pro8安装app_小米小爱音箱HD获DXO评为第二!低音准确度很高

前几天&#xff0c;知名评测机构DXOMARK公布了用于测试无线音箱音质的新基准——DXOMARK Speaker。据了解&#xff0c;这个基准由百个测试汇集而成&#xff0c;该机构称这个基准为针对音箱产品唯一的科学评分。11月9日&#xff0c;该机构发文称&#xff0c;小米小爱音箱HD获得了…

Android自定义组合布局,Android 流式布局 + 自定义组合控件

自定义组合控件package yanjupeng.bawei.com.day09.two;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.EditText;import android.widget.Lin…

freemark循环map_freemarker中循环map根据key值得value 报错

[#list uMap?keys as key]${uMap[key]}[/#list]Map uMap new HashMap();uMap.put(1,"zhangsan");uMap.put(2,"lisi");model.addAttribute("uMap", uMap);严重: Servlet.service() for servlet springMVC threw exceptionFreeMarker template e…

Lua的垃圾回收机制详解

Lua 是一种轻量级的编程语言&#xff0c;广泛用于嵌入到其他应用程序中&#xff0c;尤其是在游戏开发领域。Lua 的内存管理机制采用了自动垃圾收集&#xff08;Garbage Collection&#xff09;的方法。以下是Lua内存管理的一些关键方面&#xff1a; 垃圾收集原理概述 Lua 使用…

2020年AI怎么发展?听加州大学、谷歌、英伟达、IBM怎么说

来源&#xff1a;机器之心AI 领域最杰出的头脑如何总结 2019 年技术进展&#xff0c;又如何预测 2020 年发展趋势呢&#xff1f;本文介绍了 Soumith Chintala、Celeste Kidd、Jeff Dean 等人的观点。人工智能不是将要改变世界&#xff0c;而是正在改变世界。在新年以及新的十年…

python线程池官网-Python线程池下载txt

下次试试用scrapy模块 # codingutf-8 import requests import threadpool def download_file(i): """下载文件""" download_url f"https://www.txt2016.com/e/DownSys/xiazai/?classid1&pathid0&id{i}" file requests.get(…

select样式的重写

select {/*统一边框*/border: solid 1px #000;/*将默认的select选择框样式清除*/appearance:none;//这个样式就是清楚他的下拉按钮的默认样式-moz-appearance:none;-webkit-appearance:none;/*替换选择框的最右侧显示小箭头图片*/background: url("http://****.png")…

ip打包后如何加入 xilinx_科普!插上USB设备后电脑是怎么识别的呢?

欢迎FPGA工程师加入官方微信技术群每次当插上鼠标或者U盘的时候&#xff0c;电脑是怎么知道是什么设备的呢&#xff1f;这里用到的就是枚举了。枚举&#xff0c;其实就是让HOST认识这个USB涉笔&#xff0c;并且为该设备准备资源&#xff0c;建立好主机和设备之间的数据传递机制…

两院院士评选2019年中国、世界十大科技进展新闻揭晓

来源&#xff1a;科学网由中国科学院、中国工程院主办&#xff0c;中国科学院学部工作局、中国工程院办公厅、中国科学报社承办&#xff0c;中国科学院院士和中国工程院院士投票评选的2019年中国十大科技进展新闻、世界十大科技进展新闻&#xff0c;1月11日在京揭晓。此项年度评…

android炫酷叼ui,XUI: 一个简洁而优雅的Android原生UI框架,解放你的双手!

XUI一个简洁而又优雅的Android原生UI框架&#xff0c;解放你的双手&#xff01;还不赶紧点击使用说明文档&#xff0c;体验一下吧&#xff01;涵盖绝大部分的UI组件&#xff1a;TextView、Button、EditText、ImageView、Spinner、Picker、Dialog、PopupWindow、ProgressBar、Lo…