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

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

    #1.列表
    list1 = ['gakki','masami', 1988, 1987]
    list2 = [1, 2, 3, 4, 5]
    list3 = ["a", "b", "c", "d"]
    print ("list1[0]: ", list1[0])
    print ("list2[1:5]: ", list2)
    #增加
    list2.append('6')
    print("list2:",list2[0:100])
    #删除
    print ("原始列表 : ", list3)
    del list3[2]
    print ("删除后列表 : ", list3)
    #更改
    list2[2] = 2001
    print ("更新后的第三个元素为 : ", list2[2])
    #查找
    list4=['Boyoung','gakki','masami']
    a=list4.index('Boyoung')
    print(a)

    #2.元组
    a = ['Gakki','ranks','first','in','the','world']
    print(a[1:])  # 从左到右 下标1取到最后
    print(a[1:-1])  # 从左到右 从下标1取到倒数第二个
    print(a[1:-1:2])  # 从左到右 从下标1开始取到倒数第二个 步长为2
    print(a[0::2])  # 从左到右 从下标0开始取到最后 步长为2
    print(a[5::-2])  # 从右到左 从下标5开始往前取 步长为2
    # 添加 insert() 添加到指定位置 两个参数
    a.insert(2, 'the')
    print("增加后的元组:",a)
    # 修改
    a[1] = 'win'  # 修改一个值
    print("修改一个单词后的元组:",a)
    a[1:] = ['smiles','like','a','flower']  # 同时修改多个值
    print("修改后的元组:",a)
    # 删除
    a.remove(a[0])  # 删除指定元素
    print("删除后的元组:",a)
    #查找
    # #index 索引 获取下标
    b = a.index('flower')
    print(b)

     #3.字典

    dict = {"gakki":"朴宝英", "masami":"长泽雅美"}
    #增加
    dict.setdefault("parkboyoung","朴宝英")
    print("增加后的字典:",dict)
    #删除
    del dict['parkboyoung']
    print("删除后的字典:",dict)
    #修改
    dict['gakki'] = 1988;
    dict['masami'] = "1987"
    print("修改后的字典:",dict)
    #查找
    print(dict["gakki"])
    print(dict.get("masami"))#打印对应的内容,key不存在返回none
    print(dict.get("parkboyoung"),"这个键不存在")#key不存在返回输入的内容

    #4.集合
    nice ={1:'yes', 2:'no', 3:'1000'}
    print('字典')
    print(nice)
    nice.update({4: '21'})
    print('dict[4] = "hello"')#增加
    print(nice)
    del nice[1]
    print('del dict[2]')#删除
    print(nice)
    print('dict1[4]')#查找
    print(nice[4])

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

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

    列表:

    括号:有括号:[]

    有序无序:有序

    可变不可变:可变

    重复不可重复:可重复

    存储与查找方式:顺序查找和根据下标查找,存储根据对应下标存储

    元组:

    括号:有括号:()

    有序无序:有序

    可变不可变:不可变

    重复不可重复:可重复

    存储与查找方式:顺序查找和根据下标查找,存储根据对应下标存储

    字典:

    括号:有括号:{}

    有序无序:无序

    可变不可变:可变,根据key改变键值

    重复不可重复:key不可重复,键值可重复

    存储与查找方式:根据key存储和查找所对应的键值

    集合:

    括号:有括号:()

    有序无序:无序

    可变不可变:可变

    重复不可重复:不可重复

    存储与查找方式:顺序查找和根据下标查找,存储根据对应下标存储

    3.词频统计

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

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

      3.对文本进行预处理

      4.分解提取单词 list

      5.单词计数字典 set , dict

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

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

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

           代码块:

    复制代码

    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')

    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
  • 相关阅读:
    12
    11-常用模块
    10-异常处理
    C#程序关闭时怎么关闭子线程
    [转]Android加载图片堆栈溢出
    [转]JS弹出确认/取消对话框
    [整理]获取当前页面的网址
    C/C++多参数处理
    图标素材网站收集
    PHP "Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0" 错误
  • 原文地址:https://www.cnblogs.com/Anla/p/10579745.html
Copyright © 2011-2022 走看看