python_day6.2
一:集合
1.集合是用{}来表示(字典也是用花括号来表示的)。
>>> num={} >>> type(num) <class 'dict'> >>> num2={1,2,3,4} >>> type(num2) <class 'set'>
2.集合里面的元素唯一:
>>> num2={1,1,2,3,3,4} >>> num2 {1, 2, 3, 4}
去掉列表中重复的元素的两种方法:
>>> num1=[1,1,2,3,4,4,5] >>> temp=[] >>> for each in num1: if each not in temp: temp.append(each) >>> temp [1, 2, 3, 4, 5]
可以利用集合去掉列表中重复的元素。(因为集合的唯一性)
>>> num1=list(set(num1)) >>> num1 [1, 2, 3, 4, 5]
3.集合不支持索引。
4.创建集合的两种方法:一是直接把一堆元素用花括号括起来;二是使用set()工厂函数
>>> set1=set([1,2,3,4,5]) >>> set1 {1, 2, 3, 4, 5}
5.怎么访问集合中的元素:
可以使用for把集合中的数据一个个读取出来;可以通过in和not in判断一个元素是否在集合中已经存在
>>> 1 in num1 True
6.add()方法,和remove()方法
>>> num2 {1, 2, 3, 4} >>> num2.add(9) >>> num2 {1, 2, 3, 4, 9} >>> num2.remove(1) >>> num2 {2, 3, 4, 9}
7.不可变集合
>>> num3=frozenset([1,2,3,4]) >>> num3 frozenset({1, 2, 3, 4})
在不可变集合中add添加元素报错。
二:文件
>>> f=open('E:\\python\\record.txt') >>> f.read(5) 'Help ' >>> f.tell() 5 >>> for eachline in f: print(eachline)
1.打开模式 和执行的操作(写地址,双斜杠,转义字符)
‘r’以只读方式打开文件(这也是默认的方式)
2.文件对象方法
f.close() 关闭文件
f.read(size=-1) 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的
所有字符,然后作为字符串返回
f.readline()
以写入模式打开,如果文件存在,则在末尾追加写入
f.write(str)
将字符串str写入文件
f.writelines(seq)
向文件写入字符串序列seq,
f.seek(offset,from)
在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)
偏移offset个字节
f.tell()返回当前在文件中的位置
f.read(size=-1) 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的
所有字符,然后作为字符串返回
f.readline()
以写入模式打开,如果文件存在,则在末尾追加写入
f.write(str)
将字符串str写入文件
f.writelines(seq)
向文件写入字符串序列seq,
f.seek(offset,from)
在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)
偏移offset个字节
f.tell()返回当前在文件中的位置
三:模块
模块是一个包含所有你定义的函数和变量的文件,其后缀名是py.模块可以被别的程序调用,以使用该模块中的函数等功能。
>>> secret=random.randint(1,10) Traceback (most recent call last): File "<pyshell#97>", line 1, in <module> secret=random.randint(1,10) NameError: name 'random' is not defined >>> import random >>> secret=random.randint(1,10) >>> secret 3
1.OS模块:
python是跨平台的语言,os模块中关于文件/目录常用的函数使用方法。
>>> import os >>> os.getcwd() 'D:\\Program Files\\python' >>> os.listdir('E:\\') ['$RECYCLE.BIN', 'JavaProject', 'python', 'System Volume Information', 'Test', 'WeiXinProject', 'WeiXinProject.zip', '学习资料']
getcwd() 返回当前工作目录。
chdir(path) 改变工作目录
listdir(path='.') 列举指定目录中的文件名('.'代表当前目录 '..'表示上一级目录)
mkdir(path) 创建单层目录,如该目录已存在抛出异常
chdir(path) 改变工作目录
listdir(path='.') 列举指定目录中的文件名('.'代表当前目录 '..'表示上一级目录)
mkdir(path) 创建单层目录,如该目录已存在抛出异常
makedirs(path) 递归创建多层目录,如果该目录已存在抛出异常
remove(path) 删除文件
rmdir(path) 删除单层目录,如果该目录非空则抛出异常
removedirs(path)递归删除目录,从子目录到父目录逐层尝试删除,遇
遇到非空则抛出异常
遇到非空则抛出异常
rename(old,new) 将文件old重命名为new
system(command) 运行系统的shell命令
os.curdir 指代当前目录
os.pardir 指代上一级目录
system(command) 运行系统的shell命令
os.curdir 指代当前目录
os.pardir 指代上一级目录
os.path 模块就不一一列举了。
2.pickle模块。可以把数据很长的字典放入一个文件中。
2.pickle模块。可以把数据很长的字典放入一个文件中。
>>> import pickle >>> my_list=[123,3.14,'wwq'] >>> pickle_file=open('my_list.pkl','wb') >>> pickle.dump(my_list,pickle_file) >>> pickle_file.close() >>> my_list [123, 3.14, 'wwq'] >>> pickle_file=open('my_list.pkl','rb') >>> my_list2=pickle.load(pickle_file) >>> my_list2 [123, 3.14, 'wwq']