深圳建站推广公司,长沙市招聘网,网店运营数据分析,投资网站建设公司我发现之前自己真是太愚蠢了没有搞清楚正则表达的各种用法。不同词语的筛选根本不用像re.sub(另一个想替换的内容,另一个替换后的内容,re.sub(想要替换的内容,替换后的内容,x))这样傻了吧唧地筛一层又一层……(受linux的pipe荼毒太深)正则表达中不同字符的or其实大家都知道是[a…我发现之前自己真是太愚蠢了没有搞清楚正则表达的各种用法。不同词语的筛选根本不用像re.sub(另一个想替换的内容,另一个替换后的内容,re.sub(想要替换的内容,替换后的内容,x))这样傻了吧唧地筛一层又一层……(受linux的pipe荼毒太深)正则表达中不同字符的or其实大家都知道是[abcde1234]这样的但是不同词语的时候如果写[(remix)(acoustic)]的话匹配的并不是两个单词而是ra,rc,ro……以此类推。实际上你需要使用|把两个间隔开后再括上括号([]也行)才可以匹配。下面我们来看几个例子import restr1remix acoustic remixxxx acous remi 1234 reacu acoustic1str2re.sub(.*((remix)|(acoustic)).*,替换,str1)str3re.sub(.*(remix)|(acoustic).*,替换,str1)str4re.sub((remix)|(acoustic),替换,str1)str5re.sub([(remix)|(acoustic)],替换,str1)print(str2)print(str3)print(str4)print(str5)######输出结果#替换#替换xxx acous remi 1234 reacu 替换#替换 替换 替换xxx acous remi 1234 reacu 替换1#替换替换替换替换替换 替换替换替换替换替换替换替换替换 替换替换#替换替换替换替换替换替换 替换替换替换替换替换 替换替换替换替换 1234 替换替换替换替换替换 替换替换替换替换替换替换替换替换1所以我们为了筛选出更合适的不重复歌曲就可以用这样写if (re.search(.*((remix)|(acoustic)|(edition)|(feat\.)).*,links))None:另外为了防止Taylor最多的词语是shake这种沙雕情况这次换了一个算法lyricswords[]for lyric in lyric_dict.values():lyricswordslyricswords list(set(sorted(lyric.split( )))) #unique words in one song#the 300 most frequent wordsly_frenquencyCounter(sorted(lyricswords)).most_common(300)for item in ly_frenquency:print(re.sub(r[()],,str(item)))原理很朴素就是利用set的特性把这个有重复词语的list变成无重复的set最后再变回list加入到dict中(其实第二步转换没有必要)。那么我们来看一下结果吧笑成傻吊了……都怪我觉得说唱歌手词汇更丰富一点根本就是想太多了。麻辣鸡的歌词精选aint, 33money, 20niggas, 18bitch, 17nicki, 17fuck, 17nigga, 16bitches, 15young, 14queen, 13ride, 13hit, 12ya, 12boy, 12ass, 10pussy, 9bout, 8hoes, 8rap, 8kiss, 7fucking, 7minaj, 5pink, 5red, 5然后再来看一下喇嘛nigga, 43shit, 41down, 40life, 39fuck, 37bitch, 31man, 31one, 31niggas, 31love, 30said, 30look, 30em, 29 #我觉得这可能是em而不是真的emmmm吧毕竟英语里都没有这个说法take, 29feel, 28god, 27yeah, 27world, 27black, 27就真的也没好到哪里去不过这么简单粗暴的概括语言并不能说明什么仅供娱乐吧哈哈哈哈。ps说真的急需一个新project给我玩可是一时半会儿想不出什么好玩的想做的微博bot之类的又太超出我现有水平苦恼.jpg