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


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

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

    列表:

    list1 = ['gakki','masami', 1998, 1997]
    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)

    元组:

    a = ['Gakki','ranks','first','in','the','world']
    print(a[1:])  
    print(a[1:-1])  
    print(a[1:-1:2]) 
    print(a[0::2]) 
    print(a[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)

    字典:

    dict = {"gakki":"小米", "masami":"华为"}
    #增加
    dict.setdefault("parkboyoung","小米")
    print("增加后的字典:",dict)
    #删除
    del dict['parkboyoung']
    print("删除后的字典:",dict)
    #修改
    dict['gakki'] = 1998;
    dict['masami'] = "1997"
    print("修改后的字典:",dict)
    #查找
    print(dict["gakki"])
    print(dict.get("masami"))
    print(dict.get("parkboyoung"),"这个键不存在")

    集合:

    s = {1,2,3,4}
    print (s)
    
    #增加
    s.add(1)
    print("增加集合内有的数:",s)
    s.add(8)
    print("增加集合内不存在的数:",s)
    s1 ={ 5,6,7,}
    s.update(s1)
    print("合并集合:",s)
    #删除
    s.pop()
    print("随机删除后:",s)
    s.remove(8)
    print("指定删除后:",s)
    #修改
    s=s|s1
    print("修改后:",s)
    s=s&s1
    print("修改后:",s)
    #查找
    # 交集
    print (s1 & s)
    # 并集
    print (s1 | s)
    # 差集
    print (s1 - s)
    print (s - s1)
    # 对等差分
    print (s1 ^ s)

    遍历函数,其下格式为

    function.sort()#function可以是列表、元组、字典或者集合任意一种
    for i in function:
        print(i,end='>')

    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

         

    fo = open('1.txt', 'r', encoding='utf-8')
    stra = fo.read().lower()
    fo.close()
    print(stra) 
    sep = ',.;!'
    for ch in sep:
        stra = stra.replace(ch, '')
    print(stra)
    
    strList = stra.split(' ')
    print(len(strList), strList) 
    
    strSet = set(strList)
    print(len(strSet), strSet) 
    
    strDict = {}
    for world in strSet:
        strDict[world] = strList.count(world)
    
    print(len(strDict), strDict)
    wcList = list(strDict.items())
    print(wcList) 
    wcList.sort(key=lambda x: x[1], reverse=True)
    print(wcList) 
    
    e = {'a', 'the', 'an', 'and', 'i', 'or', 'of'}
    strSet = strSet - e
    print(len(strSet), strSet) 
    
    for i in range(20):
        print(wcList[i]) 
    import pandas as pd
    
    pd.DataFrame(data=wcList).to_csv(r'E:homeworkjoker.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
     
  • 相关阅读:
    事务的手动创建和提交
    计数器AtomicInteger
    多线程方法执行等待
    【javascript动画系列之网页白板】javascript实现的白板(兼容ff,ie,chrome,……)
    ie6,7下js动态加载图片不显示错误
    php中遇到include_path='.;C:\php5\pear'的错误
    linux下php扩展curl的安装
    【转】Linux操作系统文件系统基础知识详解
    【javascript动画之圆形运动】环绕鼠标运动作小球(兼容ie,ff,chrome,……)
    as(ActionScript)拖动实现
  • 原文地址:https://www.cnblogs.com/tianshizhao/p/10578835.html
Copyright © 2020-2023  润新知