-
基于词典tf-idf_如何使用词典替代If-Else
2020-02-14 06:16:31基于词典tf-idf 使用字典创建If-Else函数的简洁代码 动机 您可能经常使用Python的字典。 但是,您是否释放了字典的全部... 本文将重点介绍如何使用Python的词典替代if-else语句 该图片由 Gerd Altmann 在 Pi...基于词典tf-idf
使用字典创建If-Else函数的简洁代码
动机
您可能经常使用Python的字典。 但是,您是否释放了字典的全部功能来创建更有效的代码? 如果您不知道可以创建一个有序词典,将多个词典分组到一个映射中,创建一个只读词典,您可以在这里找到更多信息 。
本文将重点介绍如何使用Python的词典替代if-else语句
该图片由 Gerd Altmann 在 Pixabay上发布
使用默认值的红利削减If-Else语句
想象一下,我们在杂货店中有商品价格表:
price_list = {<br> 'fish' : 8 , <br> 'beef' : 7 , <br> 'broccoli' : 3 , <br> }
我们希望打印商品的价格,但希望并非每个商品都在price_list中,因此我们决定创建一个函数:
def find_price(item ):<br> if item in price_list:<br> return 'The price for {} is {}'.format( item , price_list[ item ])<br> else :<br> return 'The price for {} is not available'.format( item )
> ;& gt ;& gt ; find_price( 'fish' )<br> 'The price for fish is 8'
>>> find_price('cauliflower ')<br> 'The price for cauliflower is not available'
聪明。 if-else语句完全符合我们的要求:当该项不可用时,返回另一个值。 但是我们两次查询字典并使用两个语句返回几乎相同的东西。 我们可以做得更好吗? 有没有一种方法,如果该项目不在列表中,则将返回默认值? 幸运的是,有一种方法可以通过Python的名为get()的字典方法来做到这一点。
def find_price (item) :<br> return 'The price for {} is {}' .format(item, price_list.get(<br> item, 'not available' ))
.get()查找一个键,并使用不存在的键返回默认值。 该代码肯定看起来更短,但是它的表现是否像我们想要的那样?
> ;& gt ;& gt ; find_price( 'fish' )<br> 'The price for fish is 8'
>>> find_price('cauliflower ')<br> 'The price for cauliflower is not available'
整齐!
但是,我可以将Dict与不涉及字典的功能一起使用吗?
好问题。 让我们处理一个完全不涉及字典的示例。
假设您要创建一个返回两个数字之间的运算值的函数。 所以这就是你想出的:
def operations (operator, x, y) :<br> if operator == 'add' :<br> return x + y<br> elif operator == 'sub' :<br> return x - y<br> elif operator == 'mul' :<br> return x * y<br> elif operator == 'div' :<br> return x / y
> ;& gt ;& gt ; operations ('mul', 2 , 8 ) <br> 16
在这里看字典更令人印象深刻:
def operations(operator,x , y ): <br> return { <br> 'add' : lambd a: x + y , <br> 'sub' : lambd a: x - y , <br> 'mul' : lambd a: x * y , <br> 'div' : lambd a: x / y , <br> }. get (operator, lambd a: 'Not a valid operation' )()
操作员的姓名成为键,lambda有效地将功能浓缩为字典的值。 如果找不到键,则get()返回默认值。 让我们检查一下我们的功能:
> ;& gt ;& gt ; operations( 'mul' , 2 , 8 )<br> 16 <br>& gt ;& gt ;& gt ; operations( 'unknown' , 2 , 8 )<br> 'Not a valid operation'
结论
恭喜你! 您将学习如何将字典用作if-else语句的替代方法。 那么什么时候可以运用这些技巧? 如果您认识到if-else语句是重复的,那么考虑使用字典可能是一个好主意。 当然,这种技术不会在每种情况下都适用,但是在工具箱中选择另一种技术将是有益的。
我喜欢写一些基本的数学和编程概念,并喜欢使用不同的数据科学工具。 查看我的 博客 以获取有关我最新文章的更新。 您也可以在 LinkedIn 和 Twitter上 与我联系 。
翻译自: https://hackernoon.com/how-to-use-dictionaries-as-an-alternative-to-if-else-pja537hp
基于词典tf-idf
-
ProgressDialog过时(废弃)的替代方案 原来只要改一个地方~
2020-03-30 12:38:55下面我提供一种只要改一个词就能用的方案: 如图,过时的ProgressDialog被划线: 你只要,把ProgressDialog改成AlertDialog就可以用了。不需要改函数,显示也没差别(本人deno亲测): 对比...ProgeressDialog过时这个问题,网上很多博主给出的解决方案都是:用progressBar代替。但是使用progressBar代替,函数需要大改,使用上也不太一样。下面我提供一种只要改一个词就能用的方案:
如图,过时的ProgressDialog被划线:
你只要,把ProgressDialog改成AlertDialog就可以用了。不需要改函数,显示也没差别(本人deno亲测):
对比一下使用progressBar的情况(还有更多错误未贴):
-
分享一个口语中可以替代“deceive”的地道表达
2021-01-25 00:11:41当我们想用英语表达“欺骗”时,是不是有 deceive、cheat以及trick这些词可以用? 举几个例子: — How could you let that woman deceive you? —你怎么能让那个女人给骗了呢? —Cheat the earth and the ...当我们想用英语表达“欺骗”时,是不是有 deceive、cheat以及trick这些词可以用?
举几个例子:
— How could you let that woman deceive you?
— 你怎么能让那个女人给骗了呢?
— Cheat the earth and the earth will cheat you.
— 你欺骗世界,世界也会欺骗你。
— I was tricked into signing the contract.
— 我被骗签了那份合同。
其实,还有一个比较地道的短语,跟上面的三个词是一个意思:
— Pull a fast one
这是一个非正式场合的俚语,大约起源于20世纪前半叶的美国,据说它来自纸牌游戏。许多纸牌或麻将都涉及到赌博,如果一个人想作弊(我们中国人喜欢叫“出老千”),那他会尽量用对自己有利的方式去洗牌,其中一种方式就是快速的把那些好牌放在最上面或者最下面,发牌时,就把好牌发给自己。所以为了作弊,他需要快速(fast)的从牌里面pull(拉、拔)出来。
这个俚语的早期用法出现在安东尼·吉尔伯特(英国犯罪小说作家Lucy Beatrice Malleson的笔名)在1958年写的《Death Against the Clock》这本小说里面,原话是:
Mad to think they can pull a fast one.
那这个短语怎么造句呢?它主要有两种用法:
-
后面接名词时,需要加上介词 on:pull a fast one on ...
-
也可直接单独使用,表示“骗人、耍花招、玩诡计”
咱们来看两个例句:
1)例句1:编个对话,你细品下
Leon和Jasmine在讨论最近一直在买车的一次经历:
Leon: Any luck with buying a new car yet?(买新车有什么进展吗)
Jasmine: No, not yet. I finally decided what car I wanted, but I haven’t found the right seller. I did meet one guy who posted an ad online. I contacted him through email, and he offered me a good value for the car. However, when I showed up, he raised the price by two thousand dollars!(跟卖家谈好了一个不错的价格,见面时,卖家突然加价了2000刀!)
Leon: Wow! That’s suspicious(可疑的).
Jasmine: I know! That’s why I accused(控告、指控) him of trying to pull a fast one on me(骗我) and refused to buy it.
2)例句2:用来形容某个事物时,表示“执行/实行/完成一个恶作剧或者诡计”
— I've got a great plan to pull a fast one on the school for April Fools' Day.
— 我有一个很棒的计划,给学校搞一次恶作剧来庆祝愚人节。
这个俚语在以下连续剧和电影中出现过,时间由远及近:
— 1972年的战争片《Germ Warfare》第一季:
— 1992年的《双峰》(Two Peaks)第二季:
— 1994年就开始上映的经典美剧《老友记》第七季:
— 1998年的电影《单挑》(He got game):
— 1999年的《恶搞之家》第三季:
— 1999年的《怪胎与书呆》(Freaks and Geeks)第一季:
— 2005年的《美国老爸(American Dad)》第七季:
— 2013年的《蛇蝎女佣》第一季:
— Of course I wasn't trying to pull a fast one.
— 我当然没想骗人
下次遇到歪果仁,记得用这个俚语,他一定会说:“Your English is very GOOD.”
-
-
递归一之:替代多重循环
2020-03-29 15:46:59递归一词还较常用于描述以自相似方法 重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。也可以理解为自我复制的过程。(以上定义来自维基百科[递归]) 我们写写程序...递归(英语:Recursion),又译为递回,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法 重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。也可以理解为自我复制的过程。(以上定义来自维基百科[递归])
我们写程序用递归时常用于解决一下几种问题:
1,替代多重循环,特别是对于不同的问题规模有不同的循环次数。
2,解决本来就是递归定义的问题,相关的数学表达式递归定义的。比如阶乘函数,Fibonacci(斐波那契数列)数列,Ackerman(阿克曼)函数等。
3,可以将问题规模分解为更小规模进行求解的,或者说该问题的解是由更小规模的解构成的。1,替代多重循环:
N皇后问题:
输入整数n,要求n个国际象棋的皇后,摆在n*n的棋盘上,互相不能攻击,输出全部可行的摆放方案。
对于摆放的皇后的位置其要求是:任两个皇后都不能处于同一条横行、纵行或斜线上。8皇后问题-维基百科对于这道题,如果是给定的数比较小,我们自然而然的可以想到可能可以使用多重循环的方法,每一层循环判断一个位置符不符合。但是由于n的个数不确定,并且n可能比较大(比如n等于4,对于;使用多重循环都是不可取的了),这样我们就不好判断究竟要使用多少重循环了。
此时使用递归来替代多重循环就是一个解决这个问题的方案。具体做法可如下:
1,先摆放第一行的那个皇后,对应n个列。此时有n中可能的结果。此时第一行的这个皇后相当于是确定下来的了。
2,接着摆放第2行的那个皇后,注意此时第二行的这个皇后需要和第一行的皇后满足题目的要求。由于第一行已经确定,那么第二行也会被确定下来。
3,依次类推,当第k行和第k-1行没有冲突时,则继续往下递归,否则的话应该从头开始进行递归遍历。下面是C++的代码实现:
#include <iostream> #include <cmath> using namespace std; int N; //用来存放第i行的皇后放在那一列,里面的值表示哪一列,从0开始 int queenPos[100]; //表示第k行之前的皇后已经摆放完成了 void NQueen(int k); int main() { cin >> N; NQueen(0); return 0; } void NQueen(int k) { //在k-1行摆放好的情况下摆放第k行 if (k == N) { //k=N则证明找到一个可能的情况,输出 for (int i = 0; i < N; i++) { cout << queenPos[i] + 1 << " "; } cout << endl; } for (int i = 0; i < N; i++) {//逐个尝试第K个皇后的位置,这里的i表示的列 int j; for (j = 0; j < k; j++) {//和已经摆好的k个皇后的位置进行比较,看是否冲突,这里只遍历到k -1 if (queenPos[j] == i || abs(queenPos[j] - i) == abs(k - j)) {//行之差和列之差相等为对角线,queenPos[j]-i表示列之差,k-j表示行之差。 break; } } if (j == k) { //遍历过程中没有中途退出时则表明第k行中第i列可行 queenPos[k] = i; NQueen(k + 1); //可行则递归k+1 } } }
运行结果:8皇后问题有92总可能的结果,4皇后有2总可能的结果。
关于递归的其他内容可以查看:
递归二之:解决递归定义的问题
递归三之:将问题分解为更小规模 -
Usenet:P2P下载的替代方法
2021-01-12 16:57:08它是一种非常古老的交流系统,可以替代P2P。 你也许听到过Usenet这个词,要是你用过google groups,那么你其实已经同它打过交道了。Google Groups提供usenet的部分功能,看上去有点像传统的BBS系 -
Java String类中的replace方法替代冒号时的问题
2016-06-30 08:49:42方法原型public String replace(char oldChar, char newChar)返回一个新的字符串,通过newChar替换词字符串中出现的所有oldChar得到的参数oldChar - 原字符 newChar - 新字符返回一个从此字符串牌神的字符串,它将... -
替代node的deno,deno简单介绍
2021-01-20 15:00:51它是 Node.js 的替代品。有了它,将来可能就不需要 Node.js 了。 这篇文章就是 Deno 的一个初步介绍,尝试回答为什么 Node.js 不能满足需要,以及 Deno 能够带给我们什么? 以下内容主要基于Bert Belder和Ryan ... -
关于节约用水的公益广告词大全_节约用水为主题的公益广告词
2020-12-03 16:27:31那么这一类的公益广告词有哪些?下面小编为大家带来的公益广告词,供大家参考! 节约用水的公益广告词摘抄 1. 水可耻,节约用水光荣。 2. 可替代的宝贵资源。 3. 水,重在合理用水,科学用水。 4. 人珍惜人人节约... -
带有情态动词被动态的主要三种替代形式
2016-10-24 01:05:00上一篇简要的温习了被动态,这一篇主要说一说被动态都有哪些替代形式: 1.-bar 结尾形容词 【常替换können的被动态】(还有-lich结尾形容词,用法和-bar一样,但不常出现) z.B Die Produkte könn... -
Deno 运行时入门教程:Node.js 的替代品
2020-05-20 09:15:30它是 Node.js 的替代品。有了它,将来可能就不需要 Node.js 了。 这篇文章就是 Deno 的一个初步介绍,尝试回答为什么 Node.js 不能满足需要,以及 Deno 能够带给我们什么? 以下内容主要基于Bert Belder和Ryan ... -
破解替代加密法
2020-03-02 22:00:19首先必须先找出字典文件里的每个单词的模式,把它们放置在一个列表里排序好,以便获取匹配特定密词的单词模式的所有候选单词。 计算字典文件里的每个单词的单词模式,保存到另一个文件里,及 wordPatterns.py文件。 ... -
俄语毕业论文:俄语同义词的功能.doc
2021-01-15 19:56:31替代功能 同义词的替代功能是同义词的初始功能。在特定的语境场合之下,根据表达或交际需要,在句子或语段中,可以选择同义词进行相互替换。同义词之间相互替代可以使语言避免单调乏味和不必要的重复,也可以避免... -
欧陆词典Pro词典
2019-01-09 16:03:14所以我在知乎上找有道和金山的替代品。发现好多文章都有推荐一个词典————欧陆词典。 抱着试试的心态,用了一段时间,感觉比有道和金山翻译强多了,而且它能够自定义扩展词库,比如欧陆词库网址 他有很多专业的... -
运行js_Deno 运行时入门教程:Node.js 的替代品
2021-01-13 14:38:51它是 Node.js 的替代品。有了它,将来可能就不需要 Node.js 了。这篇文章就是 Deno 的一个初步介绍,尝试回答为什么 Node.js 不能满足需要,以及 Deno 能够带给我们什么?以下内容主要基于 Bert Belder[2]和 Ryan ... -
Ajiu AspWebServer AWS(IIS的替代工具)最新版
2009-02-11 08:47:17如果您厌倦了IIS的庸肿,如果您不愿意第N次重装IIS,如果您对替代品这个词很感兴趣,请您尝试一下Ajiu AspWebServer吧... 使用说明: 『1』将您的网页置与本软件同一目录下,双击运行! 『2』双击右下角任务栏... -
js写文件到本地_Deno 运行时入门教程:Node.js 的替代品
2020-12-03 12:45:59它是 Node.js 的替代品。有了它,将来可能就不需要 Node.js 了。这篇文章就是 Deno 的一个初步介绍,尝试回答为什么 Node.js 不能满足需要,以及 Deno 能够带给我们什么?以下内容主要基于 Bert Belder[2]和 Ryan ... -
mysql 全文索引 危害_mysql全文索引的限制与替代方案
2021-01-18 21:48:37mysql的全文索引只有一种方法判断相关性,就是词频,索引并不会记录匹配的词在字符串中的位置。并且,全文索引和数据量有较大的关系,全文索引只会全部在内存中时,性能才会很好,因此当全文索引过大,不能全部读入... -
select2:Select2是基于jQuery的选择框的替代品。 它支持搜索,远程数据集和结果无限滚动-源码
2021-02-03 00:56:13Select2是基于jQuery的选择框的替代品。 它支持搜索,远程数据集和结果分页。 首先,请在查看示例和文档。 用例 通过搜索增强本机选择。 通过更好的多选界面增强本机选择。 从JavaScript加载数据:通过AJAX轻松... -
如何使用字典替代If-Else
2020-02-14 06:16:31使用字典创建If-Else函数的简洁代码 动机 您可能经常使用Python的字典。... 本文将重点介绍如何使用Python的词典替代if-else语句 该图片由 Gerd Altmann 在 Pixabay上发布 使用默认值的红利来削... -
英文论文的专有词专用
2018-08-13 21:30:172)一句话里面要有连接词啊!!and不能少啊! 3)用法不清楚就要查啊!dict.cnki.net 常用的句子,可替代普通中文的句型: combined with. give a good trade-off: Our experiments have shown that 8 ... -
oracle 的同义词和序列
2011-08-08 11:58:48[size=large][color=red][size=xx-small]同义词:同义词是一个对象的替代名称[/size][/color][/size] 作用:利用同义词可以很方便地操纵不同用户模式下的对象。 通过select user from dual查看当前使用的用户。 ... -
js 用 void 0 替代 undefined
2018-11-22 17:31:00underscore 源码没有出现 undefined,而用 void 0 代替之。...我们先看第一点,答案很简单,undefined 并不是保留词(reserved word),它只是全局对象的一个属性,在低版本 IE 中能被重写。 var undefin... -
论文研究-基于有效上下文信息的变体词还原方法.pdf
2019-07-22 23:30:27在社交网络上,用户常创造一些变体词来替代部分实体名词,将这些变体词还原为原目标词是自然语言处理中的一项重要工作。针对现有变体词还原方法准确率不够高的问题,提出了基于有效上下文信息的变体词还原方法。该... -
C++操作符替代名
2012-04-11 21:56:48C++还保留了一些词用作各种操作符的替代名。这些替代名用于支持某些不支持标准C++操作符号集的字符集。它们也不能用作标识符。 除了关键字,C++标准还保留了一组标识符用于标准库。标识符不能包含两个连续的... -
职场礼仪:办公室里不能用的十个词.doc
2021-01-15 14:47:03职场礼仪:办公室里不能用的十个词 职场中说话的礼仪,是指人们在职业场所中应当遵循的一系列礼仪规范中的一部分。学会这些礼仪规范,将使一个人的职业形象大为提高。下面小编盘点办公室里不能用的十个词,身在职场... -
Artificial-Intelligence:具有启发式搜索功能的多线程Tomcat Web应用程序,可从与所选搜索词相关的前(n)...
2021-02-19 07:03:18多线程Tomcat Web应用程序多个启发式通知搜索,该搜索从与所选搜索词相关的前(n)个词生成词云,并使用神经... 该程序从用户那里获取一个查询词,并使用 ,返回与该词相关联的搜索结果最高的网页。 然后,Jsoup会抓取 -
【笑话】牛B是不可替代的!
2004-07-10 17:57:00牛B这个词在北京话里面不可替代 有这么一个人: 出身于贫苦的农村,但是天赋异秉,谈吐幽默深沉,交游极广,自6岁起每时刻身边至少有3个漂亮MM在追。 16岁出国到斯坦福大学深造,17岁回国参加世界大学生运动会获得... -
Fauxbar:替代Chrome多功能框-源码
2021-01-30 02:32:30替代Chrome的多功能框。 Fauxbar将Firefox的经典Awesome Bar功能引入了Google Chrome。 也可用。 最新版本:1.8.1(2019年6月14日)。 什么是Fauxbar? Fauxbar是一个免费的开放源代码Google Chrome扩展程序,... -
海词词典4.0.3离线版
2020-12-03 18:25:07很喜欢的桌面版字典,没有广告,有双Alt快捷键,不占地方,适合迅速查简单的词汇。再也找不到替代品。 备份一下,目前win10还可以用。 由于官方停止维护了,增强词库也下载不了, ...每次重装电脑的时候都比上一次