• 复合数据类型,英文词频统计


    1.列表,元组,字典,集合分别如何增删改查及遍历。

    列表

    (1)增加元素:

    • append()方法:在列表的末尾增加一个元素
    • insert()方法:在列表指定的位置上增加一个元素
    • extend()方法:可迭代,分解成元素添加在末尾

    (2)删除元素:

    • pop()方法: 按照下标索引删除指定的值
    • remove()方法:按元素删除指定的值
    • clear()方法:清空列表内数据
    • del:删除列表、也可以进行切片删除

    (3)修改元素:

    • s[  ] = '  '  #元素赋值 
    • s[0:2] = ‘ ’ #分片赋值

    (4)查找元素:

    • names = ['mike','mark','candice','laular']
      
      print(names[2])
    • names = ['mike','mark','candice','laular']
      
      print(names[1:3]) #通过切片方式取值,切片是顾头不顾尾,打印结果:['mark', 'candice']
      
      print(names[1:]) #取下标后面所有的值,打印结果:['mark', 'candice', 'laular']
      
      print(names[:3]) #取下标前面所有的值,打印结果:['mike', 'mark', 'candice']
      
      print(names[:]) #取所有的值,打印结果:['mike', 'mark', 'candice', 'laular']
      
      print(names[-1]) #取最后一个值,打印结果:laular
      
      print(names[:1:2])#隔几位取一次,默认不写步长为1,即隔一位取一次;结果为取下标为1之前的值,隔2位取一个['mike']

    元组的增删改差

    • tup=tup1+tup2
      元组不支持修改,但可以通过连接组合的方式进行增加
    • del tup
      元组不支持单个元素删除,但可以删除整个元组
    • tup=tup[index1],tup1[index2], ...
      tup=tup[index1:index2]
      元组是不可变类型,不能修改元组的元素。可通过现有的字符串拼接构造一个新元组
    • tup[index]
      通过下标索引,从0开始tup[a:b]
      切片,顾头不顾尾

    字典

    (1)增加元素:

    • dict[key]=value
      通过赋值的方法增加元素
    • dict.update(dict_i)
      把新的字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict不同的key)

    (2)删除元素:

    • del dict[key]
      删除单一元素,通过key来指定删除
      del dict
      删除字典
    • dict.pop(key)
      删除单一元素,通过key来指定删除
    • dict.clear()
      清空全部内容

    (3)修改元素:

    • dict[key]=value
      通过对已有的key重新赋值的方法修改
    • dict.update(dict_i)
      把字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict相同的key)

    (4)查询元素:

    • dict[key]
      通过key访问value值
    • dict.items()
      以列表返回可遍历的(键, 值) 元组数组
    • dict.keys()
      以列表返回一个字典所有键值
      dict.values()
      以列表返回一个字典所有值
    • dict.get(key)
      返回指定key的对应字典值,没有返回none

    集合:

        • add()方法:增加一个元素
        • remove()和pop()方法:删除集合中一个元素
        • clear()方法:清空集合中的元素
        • del:删除集合
        • & | - :集合的交并差

    2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:

    (1)列表

    • 列表list,用中括号“[ ]”表示
    • 列表是一组任意类型的值,按照一定顺序组合而成的 
    • 可以随时添加删除修改其中的元素
    • 元素可重复
    • 存储时每一个元素被标识一个索引,每当引用时,会将这个引用指向一个对象,所以程序只需处理对象的操作

    (2)元组

    • 元组tuple,用小括号“( )”表示
    • 与列表相同,有序
    • 一旦初始化就不能修改
    • 元素可重复
    • 与列表相似,元组是对象引用的数组

    (3)字典

    • 字典dict,用大括号“{key,value}”表示
    • 字典中的项没有特定顺序,以“键”为象征 
    • 因为是无序,故不能进行序列操作,但可以在远处修改,通过键映射到值
    • key不能重复
    • 字典存储的是对象引用,不是拷贝,和列表一样

    (4)集合

    • 集合set,用小括号“( )”表示
    • 无序
    • 可变,可以添加和删除元素
    • 无重复
    • 与列表相似

    3.词频统计

    • 1.下载一长篇小说,存成utf-8编码的文本文件 file

      2.通过文件读取字符串 str

      3.对文本进行预处理

      4.分解提取单词 list

      5.单词计数字典 set , dict

      6.按词频排序 list.sort(key=lambda),turple

      7.排除语法型词汇,代词、冠词、连词等无语义词

      • 自定义停用词表
      • 或用stops.txt

           8.输出TOP(20)

    • 9.可视化:词云     

       排序好的单词列表word保存成csv文件

    import pandas as pd
    pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')

    线上工具生成词云:
    https://wordart.com/create

    (1)读取字符串进行预处理并分解提取单词

    f=open(r'F:1.txt','r',encoding='utf8')
    word=f.read()
    word=word.lower()
    s=',.!?'
    for c in s:
        word = word.replace(c, "")
    wordlist=word.split()
    

    (2)单词计数字典

    wordlist
    wordset=set(wordlist)
    worddict={}
    for w in wordset:
        worddict[w]=word.count(w)
    

    (3)按词频排序

    wordsort = list(worddict.items())
    wordsort.sort(key = lambda x:x[1],reverse=True)

    wordsort

      排序后的结果

    (4)排除无语义词

     自定义停用词表

    exclude = {'am','the','and','i','you','it','is','if','do','a','me'}
    def gettxt():
        txt=open(r'F:1.txt','r',encoding='utf8').read().lower()
        s=',.!?'
        for c in s:
            txt = txt.replace(c, "")
        return txt
    wordlist = gettxt().split()
    wordset = set(wordlist)-exclude
    worddict = {}
    for w in wordset:
        worddict[w]=word.count(w)
    wordsort = list(worddict.items())
    wordsort.sort(key = lambda x:x[1],reverse=True)
    wordsort
    

      结果:

     使用stops.txt(连接不上)

    (5)输出top(20)

    for i in range(20):
    print(wordsort[i])
    

      

    (6)可视化

    import pandas as pd
    pd.DataFrame(data=wordsort).to_csv(r'F:ig.csv',encoding='utf-8')
    

     生成词云:

    作业博客要求:

    • 文字作业要求言简意骇,用自己的话说明清楚。
    • 编码作业要求放上代码,加好注释,并附上运行结果截图。
  • 相关阅读:
    [设计模式]在CodeDom代码生成中使用Decorator模式实现类型创建
    【翻译】防腐层:面向领域驱动设计的更为稳健的系统集成方案
    EntityFramework之领域驱动设计实践【后续篇】:基于EF 4.3.1 Code First的领域驱动设计实践案例
    Apworks框架中各种仓储实现的性能基准测试与结果对比
    CQRS架构中同步服务的一种实现方式
    在Visual Studio 2010中创建多项目(解决方案)模板【三】
    Microsoft NLayerApp案例理论与实践 应用层
    在Visual Studio 2010中创建多项目(解决方案)模板【二】
    小猫奥斯卡
    测试一下又拍网图片外链
  • 原文地址:https://www.cnblogs.com/lirou/p/10538622.html
Copyright © 2020-2023  润新知