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

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

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

    列表-list
    list.append(obj)
    增加元素到末尾
    list.insert(index, obj)
    增加元素到指定位置
    index:索引位置
    obj:内容
    list.extend(list_i)
    将list_i列表中的元素增加到list中
    list.pop():
    默认删除list末尾的元素
    list.pop(index)
    删除指定位置的元素,index是索引
    del list[index]
    删除指定位置的元素,index是索引
    del list
    删除整个列表
    list.remove(obj)
    移除列表第一个与obj相等的元素
    list.clear()
    清空列表全部内容
    list[index]=obj
    修改指定位置的元素
    list[index]
    通过下标索引,从0开始
    list[a:b]
    切片,顾头不顾尾
    元组-tup
    tup=tup1+tup2
    元组不支持修改,但可以通过连接组合的方式进行增加
    del tup
    元组不支持单个元素删除,但可以删除整个元组
    tup=tup[index1],tup1[index2], ...
    tup=tup[index1:index2]
    元组是不可变类型,不能修改元组的元素。可通过现有的字符串拼接构造一个新元组
    tup[index]
    通过下标索引,从0开始
    tup[a:b]
    切片,顾头不顾尾
    字典-dict
    dict[key]=value
    通过赋值的方法增加元素
    dict.update(dict_i)
    把新的字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict不同的key)
    del dict[key]
    删除单一元素,通过key来指定删除
    del dict
    删除字典
    dict.pop(key)
    删除单一元素,通过key来指定删除
    dict.clear()
    清空全部内容
    dict[key]=value
    通过对已有的key重新赋值的方法修改
    dict.update(dict_i)
    把字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict相同的key)
    dict[key]
    通过key访问value值
    dict.items()
    以列表返回可遍历的(键, 值) 元组数组
    dict.keys()
    以列表返回一个字典所有键值
    dict.values()
    以列表返回一个字典所有值
    dict.get(key)
    返回指定key的对应字典值,没有返回none
    集合-set
    set.add(elmnt)
    给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
    删 
    set.clear()
    移除集合中的所有元素。
    set.difference_update(set)
    移除两个集合中都存在的元素。用于计算差集的集合。
    set.discard(value)
    移除指定的集合元素。
    set.pop()
    随机移除一个元素。
    set.remove(item)
    移除集合中的指定元素。
     改
    set.update(set)
    修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,
    则该元素只会出现一次,重复的会忽略。
     查
    set.union(set1, set2...)
    返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。

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

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

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

    括号:

    列表用“[]”,元组用“()”,字典和集合用“{}”;

    有序无序:

    列表和元组有序,字典和集合无序;

    可变不可变:

    列表、字典和集合可变,元组不可变;

    重复不可重复:

    列表和元组可重复,字典键不可重复,值可以重复,集合不可重复;

    存储与查找方式:

    列表以值的方式存储为值,可通过索引查找;

    元组以值的方式存储为值,可通过索引查找;

    字典以键值对的方式存储为值,一般通过键查找;

    集合以值的方式存储为值,可以通过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
    import string
    import pandas as pd
    def getNumber(x):
        y=x[1]
        return y
    
    file = open('2.txt','r',encoding='UTF-8').read().lower()
    s = "'"
    for i in s:
        file = file.replace(s,' ')
    song = file.split()
    exclude = {'a','the','i','you','and','in','but','not','it','s','if','do','m'}
    cun = set(song)-exclude
    dis = {}
    for i in cun:
        dis[i] = song.count(i)
    words = list(dis.items())
    words.sort(key=getNumber,reverse=True)
    #输出前20
    for j in range(20):
        print(words[j])
    #保存为csv文件
    pd.DataFrame(data=words).to_csv(r'3.csv',encoding='UTF-8')

  • 相关阅读:
    异或交换真的比开一个tmp快吗?
    淘宝前端团队的干货《论版本号的正确打开方式》
    箭头函数
    js对象引用问题
    json+underscore+Node 小例子
    fs.stat()
    Express static静态路由
    剑指offer(二) 替换空格
    Node实现简单的表单+图片上传+路由
    剑指offer(一) 二维数组的查找
  • 原文地址:https://www.cnblogs.com/binguo666/p/10578650.html
Copyright © 2011-2022 走看看