标签:
总想在前面写点啥,来记录记录学习的过程,不得不承认,Python确实不好学,但是,不是学不会,我深信这个道理。所以,我会坚持下去。
1、列表操作可以增删改查,元祖是只读列表,元祖和列表都是有序的。
2、字符串是不能修改的。
比如把字符串变成大写是对整个字符串进行更新,等于说生产一个新的数据。而列表是在原来的位置上进行修改了。
3、列表可以嵌套任何东西。
4、字典的特性:无序的(因为通过key来找值,不需要通过小标来找,底层通过hash算法来找),可以嵌套很多层。
最简单的用法就是去重,关系测试。
1、去重 set
#!/usr/bin/env python # -*- coding: utf-8 -*- #Author: Leon xie list_1 = [1,4,5,7,3,6,7,9] #上面有重复数据,我把列表去重,就变成一个集合 list_1 = set(list_1) print(list_1,type(list_1))
输出结果
{1, 3, 4, 5, 6, 7, 9} <class ‘set‘>
说明:
这个就是一个集合,有点像字典,但是不是,它是无序的。
2、交叉 intersection,交集
#!/usr/bin/env python # -*- coding: utf-8 -*- #Author: Leon xie list_1 = [1,4,5,7,3,6,7,9] #上面有重复数据,我把列表去重,就变成一个集合 list_1 = set(list_1) list_2 = set([2,6,0,66,22,8,4]) #我加了一个list_2,与list_1有交叉内容,这个时候我想取他们的交集 #print(list_1,list_2) print(list_1.intersection(list_2))
输出结果
{4, 6}
3、并集 union
#!/usr/bin/env python # -*- coding: utf-8 -*- #Author: Leon xie list_1 = [1,4,5,7,3,6,7,9] #上面有重复数据,我把列表去重,就变成一个集合 list_1 = set(list_1) list_2 = set([2,6,0,66,22,8,4]) #并集 print(list_1.union(list_2))
输出结果
{0, 1, 2, 3, 4, 5, 6, 7, 66, 9, 8, 22}
4、差集 difference
#!/usr/bin/env python # -*- coding: utf-8 -*- #Author: Leon xie list_1 = [1,4,5,7,3,6,7,9] #上面有重复数据,我把列表去重,就变成一个集合 list_1 = set(list_1) list_2 = set([2,6,0,66,22,8,4]) #差集,list_1里面有的list_2里没有的 print(list_1.difference(list_2)) 输出结果 {1, 3, 5, 9, 7}
5、子集issubset
list_1 = [1,4,5,7,3,6,7,9]
#上面有重复数据,我把列表去重,就变成一个集合
list_1 = set(list_1)
list_2 = set([2,6,0,66,22,8,4])
#子集
print(list_1.issubset(list_2))
输出结果
False
6、父集 issuperset
list_1 = [1,4,5,7,3,6,7,9]
#上面有重复数据,我把列表去重,就变成一个集合
list_1 = set(list_1)
list_2 = set([2,6,0,66,22,8,4])
#父集
print(list_1.issuperset(list_2))
输出结果
False
7、反向差集
list_1 = [1,4,5,7,3,6,7,9]
#上面有重复数据,我把列表去重,就变成一个集合
list_1 = set(list_1)
list_2 = set([2,6,0,66,22,8,4])
#反向差集
print(list_1.symmetric_difference(list_2))
打印结果
{0, 1, 2, 66, 3, 5, 7, 8, 9, 22}
打印文件
首先我新建一个文件,是一个优秀的散文
你若感动,我愿成风
当爱已流逝,就任其随风吧
雨中的眼泪
丁香花开
落幕的季节
祭我们失去的爱情
风的等待
那时,你亦不再年轻
假如爱有天意
青涩之爱
红色康乃馨
驻足你的世界
我打开它,并打印它,需要注意,要指定用什么格式来打开它
#!/usr/bin/env python # -*- coding: utf-8 -*- #Author: Leon xie data = open("yesterday",encoding="utf-8").read() print(data)
具体步骤:
打开的文件赋予对象,再对对象进行操作。
#!/usr/bin/env python # -*- coding: utf-8 -*- #Author: Leon xie #文件句柄 f = open("yesterday",encoding="utf-8") data = f.read() data2 = f.read() print(data) print(‘===data2====‘) 打印结果: 你若感动,我愿成风 当爱已流逝,就任其随风吧 雨中的眼泪 丁香花开 落幕的季节 祭我们失去的爱情 风的等待 那时,你亦不再年轻 假如爱有天意 青涩之爱 红色康乃馨 驻足你的世界 ===data2====
这里我做一个小改动,如下:
#!/usr/bin/env python # -*- coding: utf-8 -*- #Author: Leon xie #文件句柄 f = open("yesterday",encoding="utf-8") data = f.read() data2 = f.read() print(data) print(‘===data2====%s===‘ %data2) 打印结果 你若感动,我愿成风 当爱已流逝,就任其随风吧 雨中的眼泪 丁香花开 落幕的季节 祭我们失去的爱情 风的等待 那时,你亦不再年轻 假如爱有天意 青涩之爱 红色康乃馨 驻足你的世界 ===data2======= 说明:这个时候为啥最后面的data2没有读出来呢? 因为在一开始的读的过程中 ,它是从上往下读,读到了结尾,光标就已经在最下面了,这个时候你在调用这个变量data2,它相当于接着从光标位置往下读,所以就没有,这个时候呢,需要做的就是把光标移上去。
需要说明:
w模式是可以新建一个文件的。
写文件,例如:
# -*- coding: utf-8 -*- #Author: Leon xie #文件句柄 f = open("yesterday",‘w‘,encoding="utf-8") #我往里面写句话 f.write("我是大肌霸,\n") f.write("我爱北京天安门") 输出结果 它会把以前的文本冲刷掉,然后再生成新的内容 我是大肌霸, 我爱北京天安门
小结:
r : 只读模式
w : 只写模式,它会冲掉原来文本,然后重新写入
a : 追加,能写,但是不能读。
循环文件,第十行打印
f = open("yesterday",‘r‘,encoding="utf-8") for index,line in enumerate(f.readlines()): if index == 9 : print("===fengefu==") continue print(line.strip()) 说明: 利用下标来判断是第几行
还有一种简单写法,上面可以忽略了
f = open("yesterday",‘r‘,encoding="utf-8") count = 0 for line in f: if count == 9: print("==我是分割线==") count +=1 continue print(line) count +=1
举例:
#!/usr/bin/env python # -*- coding: utf-8 -*- #Author: Leon xie #最普通的函数 def add(a,b,f): return f(a)+f(b) #f(abs) 传进去,abs是个函数取绝对值,会拿这个函数去处理这2个数。就是3+6了 res = add(3,-6,abs) print(res)
输出结果
9
四、小结
1、文件处理修改,只能读到内存或者创建一个新的文件
2、函数的定义,调用,位置参数,关键参数,默认参数,参数组
3、元祖和字典
4、全局变量
5、字符编码
标签:
原文地址:http://www.cnblogs.com/jixuege-1/p/5746152.html