zoukankan      html  css  js  c++  java
  • 【语言处理与Python】4.2序列

    我们应该知道,我们常用的有三种序列。他们分别是:字符串、链表、还有一种为元组。

    >>>t ='walk', 'fem', 3
        >>>t
        ('walk', 'fem', 3)
        >>>t[0]     
        'walk'
        >>>t[1:] 
        ('fem', 3)
        >>len(t)

    序列类型上的操作

    遍历操作:

    image

    zip函数

    >>>words= ['I', 'turned', 'off', 'the', 'spectroroute']
    >>>tags = ['noun', 'verb', 'prep', 'det', 'noun']
    >>>zip(words, tags)
    [('I', 'noun'), ('turned', 'verb'), ('off', 'prep'),
    ('the', 'det'), ('spectroroute', 'noun')]
    >>>list(enumerate(words))
    [(0, 'I'), (1, 'turned'), (2, 'off'), (3, 'the'), (4, 'spectroroute')]

    合成不同类型的序列

    >>>words= 'I turned offthe spectroroute'.split() 
    >>>wordlens= [(len(word), word)for wordin words]
    137
    >>>wordlens.sort()
    >>>' '.join(w for (_, w)in wordlens)④
    'I offthe turned spectroroute'

    产生器表达式

    >>>max([w.lower()for win nltk.word_tokenize(text)])
        'word'
        >>>max(w.lower()for win nltk.word_tokenize(text))
        'word

    注意观察这两种,虽然结果和作用是一样的。但是还是有所不同:

    1、在第一个方法当中,链表对象的存储空间必须在max()的值被计算之前分配。如果文本非常大大,这将会非常慢。

    2、第二个方法中,数据流像调用它的函数。由于调用的函数只是简单的要找最大值,按字典顺序排在最后的词,它可以处理数据流,而无需存储迄今为止的最大值以外的任何值。

  • 相关阅读:
    Oracle数据库中。varchar 和 varchar2的区别
    gvim 编辑器初学
    鼠标事件以及clientX、offsetX、screenX、pageX、x的区别
    清除浮动的5种方法
    按钮的单双击事件
    webstrom中的快捷键
    限制 input 输入框只能输入纯数字
    控制<标签>不可被点击
    way.js
    ECharts 折线图and柱状图
  • 原文地址:https://www.cnblogs.com/createMoMo/p/3097560.html
Copyright © 2011-2022 走看看