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


    此次作业的要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2696

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

    列表:

    list=['30','50']
    
              list.append( '20' )
    
              del list[1]
    
              list[1]='10' 
    
              list.insert(2,'10') 
    
              list.index('20')
    
              list.index['50'] 
    
              list.count('30') 
              
              list.copy()
    
              for i in list: printf(list[i])
    

      元组:

    tu = (1, 2, 3, 'alex', [2, 3, 4, 'taibai'], 'egon')
    print(tu[2]) 
    
    print(tu[0:4]) 
    
    for i in tu:
        print(i) 
    
    tu[4].append('ss')
    print(tu)
    
    del tu; 
    

    字典:

    d['a']=11   
              del d['a']  
              a=d['a']    
    
             d.clear()
    
    
              str(d) 
    
    for key in d:printf(d[key]) 
    

    集合: 

    test = {'Alice', 'Beth', 'Cecil', 'Cady', 'Bob', 'Molly'};
    
    test.add('Youth');
    print(test);
    
    test.update({123, 456});
    print(test);
    
    basket = {'orange', 'banana', 'pear', 'apple'};
    
    test.remove('Alice');
    print(test);
    
    test.discard('Beth');
    print(test);
    
    x = basket.pop();
    print("删除的元素是:", x);
    print(basket);
    

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

    • 括号
    • 有序无序
    • 可变不可变
    • 重复不可重复
    • 存储与查找方式

    列表(list):列表是一组有序项目的数字结构,列表的项目应该放在方括号[ ]中,列表是可以被改变和可重复的;按照索引的方式查找通过偏移存储并且元素可以任意类型存在。

    元组(tuple):元组与列表十分相似,可重复也是通过偏移的方式进行存储,不过元组是不可变的即是你是不能对元组中的元素进行修改,而且用的是();元组的元素是固定的长度、异构,也是任意嵌套。

    字典(dict):字典使用的是{},字典是无序的,但是可变可重复;使用键-值(key-value)进行存储,查找速度快;字典的key是不能变的,list不能作为key,字符串、元祖、整数等都可以。

    集合(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)

     1 f = open(r'D:pyhomeworkigbigword.txt',encoding='utf8')
     2 #打开文件
     3 stop={'a','the','and','i','you','in','but','not','with','by','its','for','of','an','to','my','myself','we','our','ours','ourelves','about','no','nor'}
     4 def gettext():
     5     sep = "~`*()!<>?,./;':[]{}-=_+"
     6     text = f.read().lower()
     7     for s in sep:
     8         text=text.replace(s,'')
     9     return text
    10 #读取文件
    11 textList = gettext().split()
    12 print(textList)
    13 #分解提取单词
    14 textSet = set(textList)
    15 stop = set(stop)
    16 textSet = textSet - stop
    17 print(textSet)
    18 #排除语法词
    19 textDict = {}
    20 for word in textSet:
    21     textDict[word] = textList.count(word)
    22     print(textDict)
    23 print(textDict.items())
    24 word = list(textDict.items())
    25 #单词计数
    26 word.sort(key=lambda x:x[1],reverse=True)
    27 print(word)
    28 #排序
    29 for q in range(20):
    30     print(word[q])
    31 #次数为前20的单词
    32 
    33 import pandas as pd
    34 pd.DataFrame(data=word).to_csv("text.csv",encoding='utf-8')
    

      

  • 相关阅读:
    SAS学习经验总结分享:篇三—SAS函数
    SAS学习经验总结分享:篇二—input语句
    微信指尖海报制作流程——中秋佳节
    SAS学习经验总结分享:篇一—数据的读取
    SAS连接MYSQL的步骤及引用数据表
    动态PPT制作
    cmake实战第一篇:初试 cmake
    由浅到深理解ROS(5)- launch启动文件的理解与编写
    由浅到深理解ROS(4)
    由浅到深理解ROS(3)-命名空间
  • 原文地址:https://www.cnblogs.com/zl1216/p/10533482.html
Copyright © 2020-2023  润新知