首页 > 编程语言 > 详细

python多行代码简化

时间:2018-01-29 00:04:08      阅读:491      评论:0      收藏:0      [点我收藏+]

python中,可以把多行代码简化为一行,把for循环和if条件判断都集中到一行里来写,示例如下:

>>> from nltk.corpus import stopwords
>>> english_stopwords = stopwords.words(‘english‘)#加载nltk中的英文停用词数据
#创建一个列表,内含3个单词列表
>>> texts_tokenized = [[‘writing‘, ‘ii‘, ‘rhetorical‘, ‘composing‘, ‘rhetorical‘, ‘composing‘],[‘engages‘, ‘series‘, ‘interactive‘, ‘reading‘],[‘research‘, ‘composing‘, ‘activities‘, ‘along‘, ‘assignments‘, ‘designed‘, ‘help‘]]
#用多行代码对texts_tokenized去停用词
>>> text_filtered_stopwords = [[word for word in document if not word in english_stopwords] for document in texts_tokenized] >>> text_filtered_stopwords [[‘writing‘, ‘ii‘, ‘rhetorical‘, ‘composing‘, ‘rhetorical‘, ‘composing‘], [‘engages‘, ‘series‘, ‘interactive‘, ‘reading‘], [‘research‘, ‘composing‘, ‘activities‘, ‘along‘, ‘assignments‘, ‘designed‘, ‘help‘]]

然后改成用多行的常规写法:

>>> texts_tokenized = [[‘writing‘, ‘ii‘, ‘rhetorical‘, ‘composing‘, ‘rhetorical‘, ‘composing‘],[‘engages‘, ‘series‘, ‘interactive‘, ‘reading‘],[‘research‘, ‘composing‘, ‘activities‘, ‘along‘, ‘assignments‘, ‘designed‘, ‘help‘]]
>>> documents = []
>>> texts_filtered_stopwords =[]
>>> for document in texts_tokenized:
      for word in document:
          if word not in english_stopwords:
              documents.append(word)
      texts_filtered_stopwords.append(document)

    
>>> texts_filtered_stopwords
[[‘writing‘, ‘ii‘, ‘rhetorical‘, ‘composing‘, ‘rhetorical‘, ‘composing‘], [‘engages‘, ‘series‘, ‘interactive‘, ‘reading‘], [‘research‘, ‘composing‘, ‘activities‘, ‘along‘, ‘assignments‘, ‘designed‘, ‘help‘]]

可以看到得出一样的结果,但是代码的效率和简洁程度大大提升

python多行代码简化

原文:https://www.cnblogs.com/yqpy/p/8372772.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!