python-数据类型-元祖&字符串&集合&文件操作1
1、字典打印
1 d = {'xiaohei':'123','xiaobai':'456'} 2 print(d) 3 print(d.items()) 4 print("*"*50) 5 # 打印字典 6 # 方法1:更高效 7 for key in d: 8 value = d.get(key) 9 print('%s:%s'%(key,value)) 10 print("*"*50) 11 # 方法2 12 for key,value in d.items(): 13 print('%s:%s'%(key,value))
运行结果:
2、元组
1 t = (1,2,3) 2 3 # 读取 4 print(t[0]) 5 print(t[-1]) 6 7 # 循环打印 8 for i in t: 9 print(i) 10 11 # 一个元素的元组:注意逗号是必须的 12 t2 = ('lzh',) 13 print(t2)
1 t = (1,2,3) 2 # 特点:不能改变 3 t[0] = 3 4 print(t)
运行结果:
3、切片
1 l = list(range(1,11)) # 结果:1-10 2 print(l) 3 4 print(l[0:5]) # 顾头不顾尾,结果:1-5 5 print(l[:5]) # 从第一个开始取,结果:1-5 6 7 print(l[5:10]) # 结果:6-10 8 print(l[5:]) # 取到末尾,结果:6-10 9 10 print(l[0:10:2]) # step步长,结果:1、3、5、7、9 11 print(l[::2]) # 结果:1、3、5、7、9 12 13 print(l[::-1]) # 从后往前取,结果:10-1 14 print(l[::-2]) # 结果:10、8、6、4、2 15 16 print(l[0:11:-1]) # 无数据返回,下标统一用正数或负数 17 print(l[-1:-11:-1]) # 10-1 18 19 # 只要有下标的都可以用切片取值 20 s = 'abcdefg' 21 print(s[::2]) # 结果:aceg 22 print(s[::-1]) # 结果:gfedcba
4、字符串常用方法
1 s = "lzhtest" 2 print(s.count('t')) # 统计t出现的次数,结果:2 3 4 print(s.index('t')) # 返回t第一次出现的下标,结果:3 5 print(s.index('t',4)) # 返回t从下标4以后第一次出现的下标,结果:6 6 7 # 如果元素不存在,find()返回-1;index()抛出异常 8 print(s.find('o')) 9 print(s.index('o'))
1 s1 = " lzhtest \n" 2 # 默认去掉字符串两边的空格和换行符 3 print(s1) 4 print(s1.strip()) 5 6 # 去掉左边的空格和换行符 7 print(s1.lstrip()) 8 9 # 去掉左边的空格和换行符 10 print(s1.rstrip())
1 s = "lzhtest" 2 3 print(s.startswith('l')) # s是否以l开头,结果:True 4 print(s.endswith('t')) # s是否以t结果,结果:True 5 6 print(s.lower()) # s全部小写,结果:lzhtest 7 print(s.upper()) # s全部大写,结果:LZHTEST
1 s3 = 'lzhtest' 2 3 # 替换字符 4 print(s3.replace('lzh','zsb')) # 结果:zsbtest 5 print(s3.replace('t','')) # 结果:lzhes,替换所有t 6 print(s3.replace('t','',1)) # 结果:lzhest,替换第一个t 7 8 s = '123' 9 s1 = '123a' 10 print(s.isdigit()) # 判断是否是数字,结果:True 11 print(s1.isdigit()) # 判断是否是数字,结果:False
1 # s.join():连接字符串 2 l = ['zsb','lzh','zrh'] 3 4 print(','.join(l)) # 结果:zsb,lzh,zrh 5 print('='.join(l)) # 结果:zsb=lzh=zrh 6 7 l3 = 'abcdefg' 8 print(','.join(l3)) # 结果:a,b,c,d,e,f,g 9 10 l2 = [1,2,3,4,5,6] 11 print(','.join(l2)) # 报错,提示非字符串
1 # s.split():分割字符串 2 3 s='lzh,zsb' 4 print(s.split(',')) # 结果返回一个列表:['lzh', 'zsb'] 5 6 s1 = 'lzh zsb' 7 print(s1.split()) # 默认以空格分割,结果:['lzh', 'zsb'] 8 9 s2 = 'lzh.zsb' 10 print(s2.split('.')) # 结果:['lzh', 'zsb']
5、集合
1 # 集合 2 # 1、集合天生可以去重 3 # 2、集合是无序的 4 5 s1 = {} # 空字典 6 print(type(s1)) #结果:<class 'dict'> 7 s2 = set() # 空集合 8 print(type(s2)) # 结果:<class 'set'> 9 10 s = {1,2,3,4,5,6,7,7,6,1} 11 print(s) # 结果:{1, 2, 3, 4, 5, 6, 7} 12 13 # 列表去重:列表转换为字典,然后在转换为列表 14 l = [1,2,3,4,5,6,7,7,6,1] 15 l = list(set(l)) 16 print(l) # 结果:[1, 2, 3, 4, 5, 6, 7]
1 s = {1,2,3,4,5,6,7,7,6,1} 2 # 添加元素 3 s.add(8) 4 print(s) # 结果:{1, 2, 3, 4, 5, 6, 7, 8} 5 6 # 把另外一个集合加入这个集合里面 7 s.update({4,5,6}) 8 print(s) # 结果:{1, 2, 3, 4, 5, 6, 7, 8} 9 10 # 删除指定的元素 11 s.remove(4) 12 print(s) # 结果:{1, 2, 3, 5, 6, 7, 8}
1 # 关系测试,交集、并集、差集、对称集合 2 l1 = [1,2,3,4] # 学自动化的学生 3 l2 = [2,4,5,6] # 学性能的学生 4 5 l1 = set(l1) 6 l2 = set(l2) 7 8 # 取交集,就是两个集合里面相同的元素 9 print(l1 & l2) # 结果:{2, 4} 10 print(l1.intersection(l2)) 11 12 # 并集,就是把两个结合合并在一起 13 print(l1 | l2) # 结果:{1, 2, 3, 4, 5, 6} 14 print(l1.union(l2)) 15 16 # 差集:在a结合里面存着,在b集合不存在 17 print(l1-l2) # 结果:{1, 3} 18 print(l1.difference(l2)) 19 print(l2-l1) # 结果:{5, 6} 20 21 # 对称差集:把a集合和b集合里面相同的元素去掉后,剩下的 22 print(l1 ^ l2) # 结果:{1, 3, 5, 6} 23 print(l2.symmetric_difference(l1)) # 结果:{1, 3, 5, 6}
1 l3 = list(range(1,11)) 2 l3 = set(l3) 3 l2 = [2,4,5,6] 4 l2 = set(l2) 5 print(l3) # 结果:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 6 print(l2) # 结果:{2, 4, 5, 6} 7 8 # 判断l3是l2是的父集合 9 print(l3.issuperset(l2)) # 结果:True 10 11 # 判断l2是l3的子集合 12 print(l2.issubset(l3)) # 结果:True
6、文件操作
1 # 1、打开文件;2、读、写文件;3、关闭文件 2 # 打开模式:r:只读模式;w:写模式;a:追加模式 3 f = open('a.txt','r',encoding='utf-8') 4 5 # # 读文件,获取文件里面的全部内容 6 # result = f.read() 7 # print(result) 8 9 # # 读取文件,一次只读一行 10 # result = f.readline() 11 # print(result) 12 13 # 读取文件所有行到一个list,每行的内容是list的一个元素 14 result = f.readlines() 15 print(result) 16 17 f.close()
1 f = open('a.txt', 'w', encoding='utf-8') 2 # 写文件 3 f.write('lion') 4 f.close() 5 6 f = open('a.txt', 'a', encoding='utf-8') 7 l = ['tadpole\n','fish'] 8 f.write("\n") 9 f.writelines(l) 10 f.close()