博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
作业:复合数据类型
阅读量:5335 次
发布时间:2019-06-15

本文共 3486 字,大约阅读时间需要 11 分钟。

这个作业的要求来自于:

 

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

列表操作如下所示:

#列表  string  = 'list'  #字符串->列表  list1 = list(string) # ['l', 'i', 's', 't']  #列表->字符串  string1 = ''.join(list1) #list  #列表的增删改查  list1 = list('this is a list')  #增加  list1.append('!') #末尾增加元素  list1.insert(2,'this is index 3') #指定index增加一个元素  #删除  list1.pop(-1)  #删除指定index的元素 默认是-1 return被删除元素的值  del list1[-1]  if '!' in list1:  #删除第一个匹配的元素,如果不存在会报错,没有返回值  list1.remove('!')  #修改  list1[0] = '0'  #元素赋值  list1[0:2] = list('05')  #分片赋值  list1[1:1] = list('1234') #分片赋值 插入新元素  list1[1:5] = []  #分片赋值 删除元素  #查找  if 'a' in list1:  index = list1.index('a')  # 查找元素下标  #拼接  list2 = ['new','list']  list1.extend(list2)  #从列表增加元素  print list1  #逆置  list1.reverse();  print list1  #去重  #1  l1 = ['b','c','d','c','a','a']  l2 = list(set(l1))  #2  l2.sort(key=l1.index) #保持原来的顺序  #3  l1 = ['b','c','d','c','a','a']  l2 = []  for i in l1:  #[l2.append(i) for i in l1 if not i in l2]  if not i in l2:  l2.append(i)  print l2   #保持原来的顺序

元组操作如下所示:

#元组 ,操作和列表类似,但是元组不能修改  #创建  tuple1 = ()  tuple1 = 1tuple1 = 1,2,3  tuple1 = tuple([1,2,3,4]) #序列->元组  print tuple1

字典操作如下所示:

#字典  #创建  dict1 = {  'key':'value',  'key1':'value1'  }  a = [('key1','value1'),('key2','value2')]  dict1 = dict(a)  dict1 = {}.fromkeys(['key1','key2'],'default_value') #从键值创建dict  dict1 = dict(key1='value1',key2='value2')  #增加  dict1['key3']='value3' #字典可以自动添加  dict1.setdefault('key5','N/A') #如果不存在,就设置默认值  #删除  del dict1['key3']  print dict1.pop('key2')  #popitem随机删除 和列表的pop一样  #dict1.clear()  #深删除,即使有拷贝 也会被删除  #修改  if 'key1' in dict1:  dict1['key1']='new_value_1'  #查找  if 'key1' in dict1:  print dict1['key1']  if dict1.has_key('key1'):  print dict1['key1']  print dict1.get('key3','not exists') #宽松访问  print dict1.keys(),dict1.values()  #拼接  dict2 = dict(key4 = 'value4') #从字典更新另一个字典  dict1.update(dict2)

集合操作如下所示:

# 两种方法创建set1 = set('kydaa')set2 = {
'abc', 'jaja', 'abc', 'kyda'}print(set1)print(set2)# 结果:自动将重复元素去除{
'a', 'y', 'd', 'k'}{
'jaja', 'abc', 'kyda'}

 

 


 

 

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

(1)list是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目。列表中的项目应该包括在方括号中。一旦创建了一个列表,就可以添加,删除,或者是搜索列表中的项目。列表是可变的数据类型,并且列表是可以嵌套的。python里的列表用“[]”表示。列表的特点是可重复,类型可不同,类型不同也是跟数组最本质的区别了。 

(2)元组和列表十分相似,不过元组是不可变的,即不能修改元组。元组用“()”表示,元组可以嵌套。

(3)集合特性:与字典类似,但只包含键,而没有对应的值,包含的数据不重复。

   创建:s=set(list or tuple or string),重复的值在集合中只存在一个。

(4)字典即把键(名字)和值(详细情况)联系在一起,键必须是唯一的。键值对在字典中以这样的方式标记:d={key1:value1 , key2:value2}。键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。

 

 


 

 

3.词频统计

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

 (2)通过文件读取字符串str;

 (3)对文本进行预处理; 

 (4)分解提取单词list; 

 (5)单词计数字典set,dict;

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

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

 (8)输出TOP(20);

 (9)可视化:词云。

    排序好的单词列表word保存成csv文件。

exclude={
'a','the','and','i','you','in','but','not','with','by','its','for','of','an','to'} #定义数组##读取Harry Potter.txt文件中的英文内容#def gettxt(): sep=".,:;?!-_'" txt=open('Harry Potter.txt','r').read().lower() for ch in sep : txt=txt.replace(ch,' ') return txt#分解提取单词#bigList=gettxt().split()print(bigList);print('big:',bigList.count('big'))bigSet=set(bigList)#过滤单词,包括一些冠词和连词等#bigSet=bigSet-excludeprint(bigSet)#单词计数#bigDict={}for word in bigSet: bigDict[word]=bigList.count(word)print(bigDict)print(bigDict.items())word=list(bigDict.items())#按词频排序#word.sort(key=lambda x:x[1],reverse=True)print(word)#输出频率较高的词语top20#for i in range(20): print(word[i])#排序好的单词列表word保存成csv文件#import pandas as pdpd.DataFrame(data=word).to_csv('Harry Potter.csv',encoding='utf-8')

运行结果如下所示:

 

 

 


 

转载于:https://www.cnblogs.com/linyiman/p/10509684.html

你可能感兴趣的文章
linux下的静态库与动态库详解
查看>>
hbuilder调底层运用,多张图片上传
查看>>
较快的maven的settings.xml文件
查看>>
Git之初体验 持续更新
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
Maven之setting.xml配置文件详解
查看>>
SDK目录结构
查看>>
malloc() & free()
查看>>
HDU 2063 过山车
查看>>
高精度1--加法
查看>>
String比较
查看>>
Django之Models
查看>>
CSS 透明度级别 及 背景透明
查看>>
Linux 的 date 日期的使用
查看>>
PHP zip压缩文件及解压
查看>>
SOAP web service用AFNetWorking实现请求
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>