zoukankan      html  css  js  c++  java
  • 复合数据类型,英文词频统计

    作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753

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

    列表操作:

    #列表
    list1 = ['speakingSirqin', 'softqin', 1999, 2000]
    list2 = [1, 2, 3, 4, 5 ]
    list3 = ["a", "b", "c", "d"]
    #输出
    print(list1)
    print(list2)
    print(list3)
    print(list2[0:2])#下标0开始,下标2结束,但不包含下标2所对应的上键(元素)'
    #增加
    list1.insert(2,'lili')
    list1.insert(5,'qin')
    print(list1)
    #删除
    list2.pop(0)
    print(list2)
    #修改
    list3[1]='A'
    print(list3)
    #查找
    index=list3.index('c')
    print("找到c在列表3的下标为:",index)
    
    #列表的增删改查

     

    元组操作:

    #元组
    tup1 = ('Google', 'Runoob', 1997, 2000)
    tup2 = (1, 2, 3, 4, 5, 8)
    tup3 = "a", "b", "c", "d"
    #输出
    print(tup1)
    print(tup2)
    print(tup3)
    print(tup1[0])
    print(tup2[1:3])
    #连接元组
    tup4=tup1+tup2+tup3
    print(tup4)

    字典操作:

    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
     
    print ("dict['Name']: ", dict['Name'])
    print ("dict['Age']: ", dict['Age'])

     集合操作:

    num = {1,2,3,4,5}          #定义一个集合
    print('增加:
    元素原本为:{}'.format(num))
    num.add(6)
    print('num.add(6):增加一个元素 结果:{}'.format(num))
    print('删除:
    元素原本为:{}'.format(num))
    num.remove(1)
    print('num.remove(1):删除1这个元素,若集合没有1则出错 结果:{}'.format(num))
    num.pop()
    print('num.pop():随机删除一个元素, 结果:{}'.format(num))
    print('查询:
    元素原本为:{}'.format(num))
    print('1 in num:查询1这个元素是否存在,是则是true, 结果:{}'.format(1 in num))
    print('遍历:
    元素原本为:{}'.format(num))
    print('for num in set1:print(num):便利整个集合  结果:')
    for num1 in num:
        print(num1)

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

    • 括号
    • 有序无序
    • 可变不可变
    • 重复不可重复
    • 存储与查找方式
      列表 元组 字典 集合
    括号 []  ()  {}  {}或set() 
    有序无序  有序  有序  无序   无序,自动正序 
     可变不可变  可变  不可变   可变   不可变 
    重复不重复   是  是  否  是 
    存储方式   值  值  键(不可重复)

     键值对(键不能重复)

    3.词频统计

    • 1.通过文件读取字符串 str

      2.对文本进行预处理

      3.分解提取单词 list

      4.单词计数字典 set , dict

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

     代码:

    import string
    import pandas as pd
    
    ##定义获取文件并处理函数
    def getstr():
        txt = open(r"..python1what", "r").read().lower()
    
        for c in string.punctuation:
            txt = txt.replace(c, " ")
        return txt
    
    '''将文本分成单词'''
    txtDC=getstr().split()
    
    #过滤无意词
    ex = {'a','an','and','was','as','up','my','it','here','at','ll','his','s','he','that','from','had','have','we','the','i','you','in','on','but','with','not','by','its','for','of','to'}
    txtSet=set(txtDC)-ex
    
    '''单词统计'''
    txtDic = {}
    for word in txtSet:
        txtDic[word] = txtDC.count(word)
    
    #排序
    wordList = list(txtDic.items())
    wordList.sort(key=lambda x:x[1],reverse=True)
    
    #输出top20
    for i in range(20):
        print(wordList[i])
    
    #保存为csv文件
    pd.DataFrame(data=wordList).to_csv('ToMyTex.csv',encoding='utf-8')

    运行截图:

    生成词汇图:

  • 相关阅读:
    Android中内容观察者的使用---- ContentObserver类详解 (转)
    Android应用中使用及实现系统“分享”接口
    logcat的调试 比较有用的几个命令
    ASP.NET AJAX入门系列(10):Timer控件简单使用
    ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel
    ASP.NET AJAX入门系列(8):自定义异常处理
    ASP.NET AJAX入门系列(7):使用客户端脚本对UpdateProgress编程
    ASP.NET AJAX入门系列(6):UpdateProgress控件简单介绍
    ASP.NET AJAX入门系列(5):使用UpdatePanel控件(二) UpdatePanel
    ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)
  • 原文地址:https://www.cnblogs.com/Tqin/p/10537841.html
Copyright © 2011-2022 走看看