1.集合的使用

列表是有序的可包含重复内容的

 集合是无序的不可包含重复内容的

1) 集合关系测试

#列表去重
list_1=[1,4,5,6,7,8,9,7,5,4,23,2] #有重复数据
list_1=set(list_1)
print(list_1,type(list_1))
list_2=set([2,6,0,44,55,3,4])
print(list_1,list_2)
#交集
print(list_1.intersection(list_2))
print(list_1 & list_2) #不分先后顺序 #并集
print(list_1.union(list_2))
print(list_1 | list_2) #不分先后顺序 #差集
print(list_1.difference(list_2)) #1里有2里没有
print(list_1-list_2)
print(list_2.difference(list_1)) #2里有1里没有
print(list_2-list_1) #子集
list_3=set([1,4,6])
print(list_3.issubset(list_1)) #3是否为1的子集 #父集
print(list_1.issuperset(list_3)) #3是否为1的父集 #对称差集
print(list_1.symmetric_difference(list_2)) #1 和2里都没有的
print(list_1 ^ list_2) # 没有交集返回True 有交集返回False
print(list_2.isdisjoint(list_1)) 2)基本操作
#添加
list_1.add(999) #单项
list_1.update([111,112,113]) #多项 #修改
list_1.update([2,3,4]) #删除
list_1.remove("999") #删除不存在的值会报错
#随机删除
list_1.pop()
#删除 传入一个数字
list_1.discard(88) #删除不存在的值不会报错 #长度
len(list_1) #是不是成员
x in list_1 #列表 字典 字符串判断是不是在变量里都是这样写 2.文件操作
1)基本操作

#读取
#data=open("TuDiWord.py",encoding="utf-8").read() #文件保存为对象
f=open("TuDiWord.py",encoding="utf-8") #文件句柄
data=f.read()
data2=f.read() # linux下是按顺序输出的 window下顺序可能会乱
print(data)
print(data2) #写
#f.write("丢火车乐队--茶底世界") #提示错误 不能写 # 写入需要指定打开模式
#r 为读模式 w为写模式 不写默认为读模式
f=open("TuDiWord.py","r",encoding="utf-8")
f.close() # w模式打开文件为创建文件 如果以前有同名文件就会覆盖
f1=open("TuDiWord2.py","w",encoding="utf-8")
f1.write("生命中最善良的时光,\r\n")
f1.write("就像是水一样明亮\r\n") #读写都能进行的模式
#a = append 追加 不覆盖原来的文件
f1=open("TuDiWord2.py","a",encoding="utf-8")
f1.write("记忆里总有人坐在身旁,\r\n")
f1.write("抚摸着我枯萎的肩膀\r\n") #记得关闭
f1.close()
f2=open("TuDiWord2.py","r",encoding="utf-8")
#读一行
print(f2.readline())
#读前N行 例如5行
for i in range(5):
print(f2.readline()) #读整个文件
for line in f2.readlines():
print(line.strip())
#读第10行 low的写法 忘记吧
#readlines 只适合读小文件 读大文件完啦 内存死掉了
for index,line in enumerate(f2.readlines()):
if index==9:
print("我是分割线----------------")
continue
print(line.strip())
#high的写法 内存中只保存一行 效率高
#获取行号要自己搞个计数器了
count=0
for line in f2:
count+=1
if count==10:
print("分割线---------")
print(line)

#打印光标位置
print(f2.tell()) #tell计数为字符个数 不是行数
#所以 再输出f2.tell()不是2
print(f2.read(5))
print(f2.tell())
#光标移动位置
#seek()为回到字符位置
f2.seek(0)
print(f2.tell())
print(f2.readline())
f2.seek(10)
print(f2.readline())

#打印文件编码
print(f2.encoding)
#打印文件名
f2.name #异常处理
f2.errors #返回在内存中的编号
print(f2.fileno()) #是否为终端设备
f2.isatty() #光标是否可移动
#atty文件移动不回去
f2.seekable() #文件是否可读
f2.readable()
#文件是否可写
f2.writable()
#文件是否关闭
f2.closed()
#刷新 将内存中的内容写入到硬盘中
#默认是内存满的时候刷 调用可强制刷新
f2.flush()
f2.close()
#Tips 打印进度条 
import sys,time for i in range(20):
sys.stdout.write("#")
# 打印一个刷新一下 否则会20个一起打印出来
sys.stdout.flush()
time.sleep(0.1) # 休眠0.1
f3=open("TuDiWord2.py","a",encoding="utf-8")
#不写为清空
f3.truncate()
#写了数字 截取前10个字符
f3.truncate(10) #无论光标移动到哪都是从头开始截取
f3.seek(50)
f3.truncate(100) f3.close() 2)文件内容读写
#Tips 写读模式是先创建新文件再写内容 可覆盖文件内容  读写模式是可打开原文件在最后追加

#打开方式 r+  既可读也可写 读写
f4=open("TuDiWord2.py","r+",encoding="utf-8")
f4.readline()
#添加的话会追加到最后
f4.write("-------------")
f4.close() #打开方式 w+ 既可读也可写 写读
f5=open("TuDiWord2.py","w+",encoding="utf-8")
f5.write("------------1\n")
f5.write("------------2\n")
f5.write("------------3\n")
f5.write("------------4\n")
print(f5.tell())
#添加的话会修改光标后的内容
f5.seek(5)
f5.write("can i?")
f5.close()
#追加读 a+  可读可追加
f6=open("TuDiWord2.py","a+",encoding="utf-8")
f6.write("-----------------")
f6.close() #二进制文件 rb
#不是二进制文件也能读 但会在每行前加 “b”
#应用场景:网络传输 socket
f7=open("TuDiWord2.py","rb")
print(f7.readline())
f7.close() #二进制写
f8=open("TuDiWord2.py","wb")
f8.write("jsiagmldrfh".encode()) #字符串转二进制
f8.close()

3) 文件内容修改
#修改文件方法
#1、把文件内容读取到内存中 修改后再写入到文件中
#2、打开一个文件修改完再重新写到一个新文件中 #文件修改实例
f9=open("TuDiWord.py","r",encoding="utf-8")
f10=open("TuDiWord2.py","w+",encoding="utf-8") for line in f9:
if "生命中最善良的时光" in line:
line=line.replace("生命中最善良的时光","我生命中最善良的时光")
f10.write(line) f9.close()
f10.close()
# 为避免打开文件后忘记关闭,可通过管理上下文 即:
with open("TuDiWord.py","r",encoding="utf-8") as f:
for line in f:
print(line)
#如此方式 当with代码块执行完毕时 内部会自动关闭并释放文件资源
#python2.7之后 可以同时打开 多个文件
with open("TuDiWord.py","r",encoding="utf-8") as f1,\
open("TuDiWord2.py","r",encoding="utf-8") as f2:
pass

3.字符编码

Python学习Day2笔记(集合和文件操作)的更多相关文章

  1. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

  2. Python学习,第七课 - 文件操作

    Python中对文件的相关操作详解 文件的操作在今后的Python开发中也是使用非常频繁的. 先说下对文件操作的流程 打开文件,得到文件的一个句柄,赋值给一个变量 然后通过句柄对文件进行操作(内容的增 ...

  3. Python学习Day2笔记(字符编码和函数)

    1.字符编码 #ASCII码里只能存英文和特殊字符 不能存中文 存英文占1个字节 8位#中文编码为GBK 操作系统编码也为GBK#为了统一存储中文和英文和其他语言文字出现了万国码Unicode 所有一 ...

  4. Windows phone 8 学习笔记(2) 数据文件操作

    原文:Windows phone 8 学习笔记(2) 数据文件操作 Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方 ...

  5. Python学习基础笔记(全)

    换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...

  6. Html5 学习系列(四)文件操作API

    原文:Html5 学习系列(四)文件操作API 引言 在之前我们操作本地文件都是使用flash.silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很难进行跨平台.或者跨 ...

  7. python03-break、continue、for循环、数据bytes类型、字符串与字节的关系、变量指向与深浅拷贝、set集合、文件操作

    目录: 1.break.continue 2.for循环 3.数据bytes类型 4.字符串与字节的关系 5.变量指向与深浅拷贝 6.set集合 7.文件操作 一.break.continue bre ...

  8. python学习day2(一)

    一.上周作业回顾 1.登陆接口: 思路流程: 1.登陆,三次锁定用户 2.用户信息文件,黑名单文件 3.检测黑名单,如输入账号在黑名单中存在,不允许登陆 4.用户密码判断 主要知识点:while,fo ...

  9. python学习笔记-(七)python基础--集合、文件操作&函数

    本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...

随机推荐

  1. 【工业串口和网络软件通讯平台(SuperIO)教程】四.开发设备驱动

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    开发准备 把“开发包”内的所有文件复制到项目的“bin”目录下,或项目下的专用生成目录.开发包 ...

  2. 设计模式-装饰器模式(Decrator Model)

    文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6057666.html 目录 1.概述 2.目的 3.结构组成 4.实现 5.总结 1.概 ...

  3. .net 实体类与json转换(.net自带类库实现)更新

    上一篇文章中写到在.net中实体类跟json格式的相互转换,今天在做具体转换时候,发现之前版本的jsonhelp对于日期类型的转换不全面.之前版本的jsonhelp中从实体类转换成json格式时候,将 ...

  4. Elasticsearch配置详解、文档元数据

    目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 1.Elasticsearch配置文件详解 a. 在上面博客中,我们已经安装并且成功 ...

  5. 转载 CSS3 经典教程系列:CSS3 盒阴影(box-shadow)详解

    目标大纲 文章转载 CSS3 经典教程系列:CSS3 盒阴影(box-shadow)详解 IE中CSS-filter滤镜小知识大全 CSS实现跨浏览器兼容性的盒阴影效果

  6. 超简洁的CSS下拉菜单

    效果体验:http://hovertree.com/texiao/css/3.htm HTML文件代码: <!DOCTYPE html> <html xmlns="http ...

  7. jQuery构造函数init参数分析(一)

    在我的上一篇随笔里面分析了jQuery的构造函数,jQuery对象中有一个原型方法init才是是真正的构造函数,通过init的原型对象跟jQuery的原型对象保持引用关系使得init的实例可以正常调用 ...

  8. jQuery - 全国省市县三级联动

    最近有空用jquery做了一个全国省市县的三级联动,在以后或许可以用的到 ,遗憾的是我还没用封装,等有空看能不能封装成一个插件 废话不多说,贴上代码: <!doctype html> &l ...

  9. 轻松掌握:JavaScript模板方法模式

    模板方法模式 假如我们有一些对象,各个对象之间有一些相同的行为,也有一些不同的行为,这时,我们就可以用模板方法模式来把相同的部分上移到它们的共同原型中(父类),而将不同的部分留给自己各自重新实现. 模 ...

  10. 开发环境(Atom + NotePad++)

    1.NodeJS Gulp:前端构建工具Grunt:前端构建工具Bower:客户端依赖管理工具Karma: 单元测试Protractor: 集成测试Git:版本控制ngScenario:情景测试(sc ...