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. Atitit.异常处理 嵌套  冗长的解决方案

    Atitit.异常处理 嵌套  冗长的解决方案 1. 异常处理的需要改进的地方1 2. +异常设计的初衷是, 在程序中出现错误时, 由程序自己处理错误, 尽量不要以exit(0)这种粗暴的方式中止程序 ...

  2. [python]数据整理,将取得的众多的沪深龙虎榜数据整一整

    将昨日取得的众多的沪深龙虎榜数据整一整 提取文件夹内所有抓取下来的沪深龙虎榜数据,整理出沪深两市(含中小创)涨幅榜股票及前5大买入卖出资金净值,保存到csv文件 再手动使用数据透视表进行统计 原始数据 ...

  3. MAC 如何使用Github Desktop 客户端

    作为开源代码库以及版本控制系统,Github拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法.GitHub上已自动配置的Mac ...

  4. jeecg环境搭建20160707

    1.首页修改位置:src/main/webapp/webpage/main 2.tomcat45秒超时启动修改,open打开servers项目,在右上角处的timeouts参数修改: 3.eclips ...

  5. Android Studio 导入百度地图jar和so的正确方式

    //这部分内容在百度地图的官方文档中写的比较模糊 //感觉在这种事情上浪费实际很不好,遂记录如下 //以下仅是方法之一 step1 下载sdk后解压,并把libs中的全部内容拷贝到app/libs目录 ...

  6. vimrc

    我的vimrc https://github.com/juandx/vimrc 当然得装vundle git clone https://github.com/VundleVim/Vundle.vim ...

  7. SQL Server自动化运维系列——批量执行SQL脚本(Power Shell)

    需求描述 一般在生产环境中,在投产的情况下,需要批量的来执行SQL脚本文件,来完成整个投产,如果投产文件比较多的情况下,无疑这是一个比较痛苦的过程,所以本篇通过PowerShell脚本来批量完成. 监 ...

  8. 大数据系列(3)——Hadoop集群完全分布式坏境搭建

    前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...

  9. C# 实现酒店房态图

    酒店管理系统最重要和实用的是能够及时.一目了然的反应房间状态的房态图,之前在开发一个的酒店管理系统中做了一个还算实用的房态图,现在分享下: 鼠标移到每个房间上面,可显示提示信息: 还可以自定义设置不同 ...

  10. 多重共线性的解决方法之——岭回归与LASSO

          多元线性回归模型 的最小二乘估计结果为 如果存在较强的共线性,即 中各列向量之间存在较强的相关性,会导致的从而引起对角线上的 值很大 并且不一样的样本也会导致参数估计值变化非常大.即参数估 ...