wMy_Python ~储存相关~
str,int,list,tuple,dict 是类型调用之后会产生一个 实例
1 >>> brand=["李宁",'耐克','阿迪达斯','鱼C'] 2 >>> slogan=['一切皆有可能','Just do it','Impossible is nothing','让编程改变世界'] 3 >>> print("鱼C的口号是:",slogan[brand.index('鱼C')]) 4 鱼C的口号是: 让编程改变世界
1 >>> dict1={"李宁":"一切皆有可能",'耐克':"Just do it",'阿迪达斯':'Impossible is nothing'} 2 >>> print(dict1['李宁']) 3 一切皆有可能 4 >>> print(dict1["李宁"]) 5 一切皆有可能
1 >>> # dict只能传入一个参数 . 2 >>> dict1=dict((('F',70),['i',105])) 3 >>> dict1 4 {'F': 70, 'i': 105}
1 >>> # dict只能传入一个参数 . 2 >>> dict1=dict((('F',70),['i',105])) 3 >>> dict1 4 {'F': 70, 'i': 105} 5 >>> dict1['F']=10000 6 >>> dict1 7 {'F': 10000, 'i': 105} 8 >>> dict1["QQ"]="钱" 9 >>> dict1 10 {'F': 10000, 'i': 105, 'QQ': '钱'}
在列表中如果你是用没有的函数 会出错 , 但是在字典中 , 如果没有的话会自动创建一个 . 如上.
1 >>> dict1.fromkeys((1,2,3)) 2 {1: None, 2: None, 3: None} 3 >>> dict1.fromkeys((1,2,3),'num') 4 {1: 'num', 2: 'num', 3: 'num'}
如果直接使用fromkeys 会出错的.
1 >>> dict1=dict1.fromkeys(range(1,9),'赞') 2 Traceback (most recent call last): 3 File "<pyshell#0>", line 1, in <module> 4 dict1=dict1.fromkeys(range(1,9),'赞') 5 NameError: name 'dict1' is not defined 6 >>> dict1={} 7 >>> dict1=dict1.fromkeys(range(1,9),'赞') 8 >>> dict1 9 {1: '赞', 2: '赞', 3: '赞', 4: '赞', 5: '赞', 6: '赞', 7: '赞', 8: '赞'}
1 >>> for i in dict1.items(): 2 i 3 4 5 (1, '赞') 6 (2, '赞') 7 (3, '赞') 8 (4, '赞') 9 (5, '赞') 10 (6, '赞') 11 (7, '赞') 12 (8, '赞')
1 >>> for i in dict1.values(): 2 i 3 4 5 '赞' 6 '赞' 7 '赞' 8 '赞' 9 '赞' 10 '赞' 11 '赞' 12 '赞'
1 >>> a={1:'one',2:'two'} 2 >>> b=a.copy() 3 >>> c=a 4 >>> id(a) 5 48682848 6 >>> id(b) 7 48854120 8 >>> id(c) 9 48682848 10 >>> # 由此可见 浅拷贝是 将内容放到另一块的储存区域中
在dict中批量添加元素.
1 >>> a={1:'one',2:'two'} 2 >>> b={3:'three',4:'four'} 3 >>> a=a+b 4 Traceback (most recent call last): 5 File "<pyshell#2>", line 1, in <module> 6 a=a+b 7 TypeError: unsupported operand type(s) for +: 'dict' and 'dict' 8 >>> a.update(b) 9 >>> a 10 {1: 'one', 2: 'two', 3: 'three', 4: 'four'} 11 >>> b.update(a) 12 >>> b 13 {1: 'one', 2: 'two', 3: 'three', 4: 'four'}
可见字典可有集合的特性 ~'唯一'
文件的读写.
--------- ---------------------------------------------------------------
'r' open for reading (default) 以只读方式打开(默认)
'w' open for writing, truncating the file first 已写入的方式打开文件 , 会覆盖已存在文件
'x' create a new file and open it for writing 创建一个新的文件,并且打开写入 . (文件已存在会引发异常)
'a' open for writing, appending to the end of the file if it exists 以读写模式打开 , 如果文件存在则将内容添加到文件末尾.
'b' binary mode 二进制模式打开
't' text mode (default) 文本模式打开
'+' open a disk file for updating (reading and writing) 打开一个(磁盘?)文件用于读写
'U' universal newline mode (deprecated)
========= ===============================================================
文件对象方法
写一个简单的小程序 . 给你一个txt文件内容如下
小客服:小甲鱼,今天有客户问你有没有女朋友? 小甲鱼:咦?? 小客服:我跟她说你有女朋友了! 小甲鱼:。。。。。。 小客服:她让你分手后考虑下她!然后我说:"您要买个优盘,我就帮您留意下~" 小甲鱼:然后呢? 小客服:她买了两个,说发一个货就好~ 小甲鱼:呃。。。。。。你真牛! 小客服:那是,谁让我是鱼C最可爱小客服嘛~ 小甲鱼:下次有人想调戏你我不阻止~ 小客服:滚!!! ================================================================================ 小客服:小甲鱼,有个好评很好笑哈。 小甲鱼:哦? 小客服:"有了小甲鱼,以后妈妈再也不用担心我的学习了~" 小甲鱼:哈哈哈,我看到丫,我还发微博了呢~ 小客服:嗯嗯,我看了你的微博丫~ 小甲鱼:哟西~ 小客服:那个有条回复“左手拿著小甲魚,右手拿著打火機,哪裡不會點哪裡,so easy ^_^” 小甲鱼:T_T ================================================================================ 小客服:小甲鱼,今天一个会员想找你 小甲鱼:哦?什么事? 小客服:他说你一个学生月薪已经超过12k了!! 小甲鱼:哪里的? 小客服:上海的 小甲鱼:那正常,哪家公司? 小客服:他没说呀。 小甲鱼:哦 小客服:老大,为什么我工资那么低啊??是时候涨涨工资了!! 小甲鱼:啊,你说什么?我在外边呢,这里好吵吖。。。。。。 小客服:滚!!!
将该文件 分割为三部分 , 已经以"====~==="分割. 让你将每一段的每个人说的话自成一个文档 . 代码如下
1 def save_file(boy,gril,count): 2 file_name_boy='boy_'+str(count)+'.txt' 3 file_name_gril='gril_'+str(count)+'.txt' 4 boy_file=open(file_name_boy,'w') 5 gril_file=open(file_name_gril,'w') 6 boy_file.writelines(boy) 7 gril_file.writelines(gril) 8 boy_file.close() 9 gril_file.close() 10 def split_file(file_name): 11 boy=[] 12 gril=[] 13 count=1 14 f=open(file_name) # 如果直接写文件名的话 那就默认 , 该文件和程序是在一个地方 . 15 for each_line in f: # for 读写文件 是一段一段的 16 if each_line[0:6]!="======": #如果 不是等号的话 . 17 (role,line_spoken)=each_line.split(":",1) # 那么就开始收集 分割话语. 18 if role=='小甲鱼': # 上面函数调用的意思是 , ":"以其为分隔符 , 该字符传"一"分为二 19 boy.append(line_spoken) 20 if role=='小客服': 21 gril.append(line_spoken) 22 else: 23 save_file(boy,gril,count) 24 boy=[] 25 gril=[] 26 count+=1 27 save_file(boy,gril,count) 28 f.close() 29 split_file("record.txt")