python_02列表,字典,IO处理
===文件的数据处理===
文件处理模式
r 以只读模式打开文件(默认模式)
w 以只写模式打开文件
a 以追加模式打开文件
r+b 以读写模式打开文件
w+b 以写读模式打开文件(清空文件再写)
a+b 以追加及读模式打开文件
code:
f = file('test.txt','r')
for line in f.readlines():
print line,#加逗号可解决换行符的打印问题
f.close()
f = file('test.txt','w')
f.write('aaaa')#会覆盖原文件
f.close()
f.closed
f.name
f.seek(n)
f.tell()
f.truncate(n)#截断多少字符
===字符串处理===
s.find(substring,[start[,end]])#可指定范围查找子串,返回索引值,否则返回-1
s.rfind(substring,[start[,end]])#反向查找
s.index(substring,[start[,end]])#同find,只是找不到产生valueError异常
s.rindex(substring,[start[,end]])#同上反向查找
s.count(substring,[start[,end]])#返回找到的子串的个数
s.capitalize()
s.lower()
s.upper()
s.swapcase()
s.split('')
s.join(list,' ')
len(str)
cmp('my test',str)#字符串比较,第一个大返回1
max('abcxyz')#寻找字符串中最大的字符
min('abcxyz')
===列表处理list===
lst=['wing','28','girl']
lst.insert(index,str)
lst.remove()
lst.append()
lst.count()
lst.index()
lst.extend(list2) #扩展列表
lst.pop( #删除最后一个,并返回
lst.reverse( #反转
lst.sort(
---列表切片(顾头不顾尾)
list[2:] list[2:4] list[:5] list[-5:]
list[1::2] 从index1开始,隔一个取一个 list[1::3]从index1开始,隔2个取一个
ilist = [i for i in range(len(lst)) if lst[i]==1]
===元组tuple===
a=(1,2,3,4)
a.index
a.count
元组tuple只读,不可更改
===字典Dict===
--copy
nameDict = {'name':'wing','age':28,'job':'hr','hobby':['sing','dancing','drawing']}
named1 = nameDict #直接赋值是同指一个内存地址的
nameDict.copy---浅copy
import copy
copy.copy()---浅copy,只独立第一层,比如字典里的列表还是不独立的
info = copy.deepcopy()---深copy,非常耗空间,完全独立
===集合set===
-无序、元素不重复
-关系测试、去重
x= {1,2,3,4,5}
y={4,5,6,7}
x & y --->取交集
x | y --->取合集
x - y --->取差集
x ^ y --->取对称差集
x.issubset(y) x是y的子集
x.issuperset(y) x是否包含y