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

    练习:

    总结列表,元组,字典,集合的联系与区别。列表,元组,字典,集合的遍历。

    区别:

    一、列表:列表给大家的印象是索引,有了索引就是有序,想要存储有序的项目,用列表是再好不过的选择了。在python中的列表很好区分,遇到中括号(即[ ]),都是列表,定义列表也是如此。列表中的数据可以进行增删查改等操作;

    增加有两种表达方式(append()、expend()),关于append的用法如下(注:mylist定义的列表名称):不难看出,用append方法增加元素,不用给元素加中括号,而用extend方法加元素(一个元素可以不用中括号),(多个元素)必须要用一个中括号。

    【mylist.append(5)    >>>[1, 2, [3, 4], 5]

    mylist.append([5])   >>>[1, 2, [3, 4], [5]]

    mylist.extend([5])    >>> mylist.expand(1, 2, [3,  4], 5) 】

    删除元素:del mylist[0] 既删除了mylist的第一个元素。

    二、元组:元组给我的感觉,是列表的儿子,儿子终究是儿子,元组不可以进行删改,但可以查询、删除、增加。如以下代码所示(定义元组名字 yubin=("sun","yu","bin")):

    删除元素:del yubin[0] ;    删除元素,查找元素是要用索引值,这点和列表list类似

    索引元素:yubin.index["sun"]      索引元素,不是通过索引值来索引的,而是通过名字来索引的。

    增加元素:yubin.append("az")    增加元素,这也和列表倒也没有太大的差别。

     三、字典:字典是我用的最多的,说到字典,最离不开的就是“键值对”,键既是key,也是一个属性的名字,值就是这个属性的具体表现,可以是整型、字符型...字典没有排序,其输出的顺序也是按照先前定义时候的顺序输出。定义字典:sunyubin={"name":"sunyubin","age":22,"gender":"boy"}

    删除元素:del.sunyubin[name]

     四、集合:说到集合,首先想到就是set,其次是每个元素之间,用逗号(,)相隔。而且还不能有重复元素。

    写入代码:

    # 两种方法创建
    set1 = set('kydaa')
    set2 = {'abc', 'jaja', 'abc', 'kyda'}
    print(set1)
    print(set2)
    

     输出代码:结构自动去重

    {'a', 'y', 'd', 'k'}
    {'jaja', 'abc', 'kyda'}
    

     集合的方法:

    英文词频统计:下载一首英文的歌词或文章str,分隔出一个一个的单词 list,统计每个单词出现的次数 dict。

    有错误,在修改中

    def getTxt():
    txt = open("music").read()
    txt = txt.lower()
    for ch in '!"@#$%^&*()+,-./:;<=>?@[\]_`~{|}':
    txt.replace(ch," ")
    return txt

    hamletTxt = getTxt()

    txtArr = hamletTxt.split()

    counts = {}
    for word in txtArr:
    counts[word] = counts.get(word,0)+1

    countList = list(counts.items())
    countList.sort(key=lambda x:x[1], reverse=True)

    for i in range(10):
    word, count = countList[i]
    print('{0:<10}{1:>5}'.format(word,count))

    方法二:

    with open('music','r') as f:
     niubi = f.read()
     niubi = niubi.lower()
     print('全部转换为小写的结果:' + niubi + '
    ')
    
    for p in ''',.?!’':"“”-%$''':
        niubi = niubi.replace(p, ' ')
        print('分隔符替换为空格的结果:' + niubi + '
    ')
    
    
    
    split = niubi.split()
    word = {}
    for i in split:
        count = niubi.count(i)
        word[i] = count
    words = '''
    a an the in on to at and of is was are were i he she you your they us their our it or for be too do no
    that s so as but it's don't
    '''
    prep = words.split()
    for i in prep:
        if i in word.keys():
            del (word[i])
    word = sorted(word.items(), key=lambda item: item[1], reverse=True)
    for i in range(10):
        print(word[i])
    

      

  • 相关阅读:
    02-高阶函数 map filter sorted
    01-切片的赋值操作
    学习资料记录
    django_初级学习(1)
    git配置使用
    openpyxl操作表格(2)
    openpyxl模块操作excell表格(1)
    精简语法
    MySQL常见面试题
    02-图片转字符画
  • 原文地址:https://www.cnblogs.com/sunyubin/p/9688986.html
Copyright © 2011-2022 走看看