python--数据结构
数据结构:学列类型(列表,元组,字符串),集合(set),映射类型(字典) 列表myList=[‘as’,123,‘dfg’] #定义myList.append(‘ddd’) #添加for item in myList: #遍历 print(item) myList.sort() #排序len(myList) #计算长度del myList[0] #删除 堆栈: myList.pop() 元组zoo = (‘aa’, ‘bb’) #小括号可以省略len(zoo)=2 #元组长度2newzoo=’cc’,zoolen(newzoo)=2 #长度还是2 ‘cc’,(‘aa’, ‘bb’)newzoo[1][1]=’bb’ #访问 字典dic={‘key1’:’value1’,‘key2’:’value2’,‘key3’:’value3’}del dic[‘key1’] #删除for key,value in dic.items(): #遍历 print(key,value)dic[‘key4’]=’value4’ #添加dic.has_key(‘keyName’) #是否含有该key 集合bri=set([‘aa’,’bb’]) #定义‘aa’in bri=True #是否含有该元素bric=bri.copy() #复制bric.add(‘cc’) #添加bric.issuperset(bri)=True #子集判断 / 包含于判断bri.remove(‘bb’) #删除元素bric & bir={‘aa’} #bri.intersection(bric)={‘aa’} #求交集 引用shopList=[‘a’,’b’,’c’]myList=shopList #引用del shopList[0] #删除print(shopList)=print(myList)=[‘b’,’c’] #结果一致,因为是引用 myList=shopList[:] #以全切片新建一个拷贝del shopList[0] #删除print(shopList) != print(myList) #不相等,因为指向不同的对象 字符串name=’abcd’name.startswith(‘ab’)name.find(‘bc’) != -1delimiter=’_*_’list=[‘1’,’2’,’3’]print(delimiter.join(list))=1_*_2_*_3 reverse=name[::-1]=’dcba’ #反转字符串, 列表也可以 类-OOP##每个函数定义时,第一个形参必须为self class Persion: num=0 #类变量 每个对象共享 def __init__(self, name): #初始化函数 self.name = name def sayHi(self): #自定义函数 print(‘my name is ’,self.name) p = Person(‘lucy’)p.sayHi()>>my name is lucy ##python中所有类成员都为public除了双下划线开头的: __nameXXX,为private惯例:单下划线开头的: _nameXXX,约定为private,但其实是public 文件操作f = open(‘open.txt’,’w’) #写模式打开文件f.write(‘aaaaa’) #写文件f.close() #关闭文件 f=open(‘open.txt’) #默认读模式whlie True: line=f.readline() if len(line) == 0: #长度为0代表EOF break print(line,end=’’)f.close() with open(‘open.txt’) as f: for line in f: print(line,end=’’) lambda 表达式 #返回新的函数对象def make_repeater(n): return lambda s : s*n twice = make_repeater(2)print(twice(‘word’))print(twice(5))>>wordword>>10 列表解析list=[2,3,4]newlist=[2*i for i in list if i > 2]print(newlist)>> 6, 8 函数接收元组+列表def function_name(arg1, *args): for i in args: print(i) def function_name(arg1, **args): for key, value in args.items(): print(key, value)