您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Python > 76python语法
列表列表list列表的定义1.列表中由一系列特定元素组成,元素与元素之间可能没有任何关联关系,但他们之间有先后顺序关系。2.列表是一种序列3.列表可以改变存储的各个元素4.列表是一种容器序列类型有:strlist---以下后面会学---tuplebytesbytearray创建空列表:L=[]#L绑定一个空列表创建非空列表:L=[1,2,3,4]L=[Beijing,Shanghai,Shenzhen]L=[True,False,1,Two,3.14,(1+2j)]L=[1,2,[3.1,3.2,3.3],4]列表的构造(创建)函数list()生成一个空列表,等同于[]list(iterable)用可迭代对象初始化一个列表练习:生成一个存在10000以内奇数的列表(用交互环境实现)列表的运算:算术运算:++=**=(类似于str的用法)+用于拼接列表x=[1,2,3]y=[4,5,6]z1=x+y#z1=[1,2,3,4,5,6]z2=y+x#z2=[4,5,6,1,2,3]+=原列表与右例列表拼接后变量绑定新列表x=[1,2,3]y=[4,5,6]x+=y#x=[1,2,3,4,5,6]*生成重复的列表:L=[1,2]*3#L=[1,2,1,2,1,2]L2=3*[5,6]#L2=[5,6,5,6,5,6]*=用原列表生成重复的列表,用变量绑定新生成的列表x=[1,2,3]x*=2#x=[1,2,3,1,2,3]比较运算:====!=x=[1,2,3]y=[1,2,4][1,'two'][two,1]#TypeError列表推导式(listcomprehension)列表推导式是用可迭代对象依次生成列表内元素的方式:列表推导式是表达式语法:[表达式for变量in可迭代对象]或[表达式for变量in可迭代对象if条件表达式]说明:1.先从可迭代对象取一个值,用变量绑定2.调用表达式,把当前的表达式结果追加到列表中3.重复上述步骤,直到可迭代对象不再提供数据为止4.forin表达式的if子句可以省略,省略后将对所有生成的对象进行处理5.如果if条件语句的真值测试值为False,则可迭代对象生在的数据将被丢弃示例:#生成一个数值为1~9的平方的列表[1,4,9,16,.....81]#用for语循环实现L=[]forxinrange(1,10):L.append(x**2)#用列表推导式实现L=[x**2forxinrange(1,10)]生成:[1,3,5,7,9,.....99]列表L=[xforxinrange(1,100,2)]L=[2*x-1forxinrange(1,51)]示例:上题的另一种解法:L=[xforxinrange(100)ifx%2==1]练习:用列表推导式生成1~100的x**x-1次方的列表,把能被7整数的数去掉1**1-1,2**2-1,3**3-1,.....99**99-1答案:L=[x**x-1forxinrange(1,100)if(x**x-1)%7!=0]列表推导式的嵌套:语法:[表达式1for变量1in可迭代对象1for变量2in可迭代对象2(if真值表达式2)]()表示可省略示例:已经有字符s=ABC,字符串d=123想生成列表['A1','A2','A3','B1','B2',...]#用循环嵌套:s=ABCd=123L=[]forxins:foryind:L.append(x+y)用列表推导式实现s=ABCd=123L=[x+yforxinsforyind]列表推导式练习:用列表推导式生成如下列表:[1,4,7,10,.....100]答案:[xforxinrange(1,101,3)]2.生成如下列表(思考题):[[1,2,3],[4,5,6],[7,8,9]]答案1:[[x,x+1,x+2]forxinrange(1,8,3)]答案2:[[yforyinrange(x,x+3)]forxinrange(1,8,3)]字符串文本解析方法:S.split(sep=None)用sep字符将字符串分隔,返回关于字符串的列表S.join(iterable)将一个可迭代对用字符S进行拼接,生成新的字符串示例:s=BeijingiscapitalL=s.split('')s2='-'.join(L)#s2=Beijing-is-capital思考:有字符串hello能否生成hello和h-e-l-l-os=helloprint(''.join(s))print('-'.join(s))''.join(list(s))元组tuple什么是元组:元组是不可变的序列,同list一样,可以存放任意类型的元素字面值的表示方法:用小括号()括起来,单个元素括起来后加逗号(,)区分单个对象还是元组创建空元组:T=()非空元组T=200,#含有一个元素的元组T=(20,)#有一个元素的元组T=(1,2,3)#有3个元素的元组T=100,200,300#有3个元素的元组错误示例:t=(20)#错的t绑定20(整数型)x,y,z=(100,200,300)#序列赋值(不是元组)x,y,z=[100,200,300]#序列赋值(不是元组)x,y,z=ABC元组的构造(创建)函数tuple()生成一个空的元组,等同于()tuple(iterable)用可迭代对象生成一个元组算术运算:++=**=示例:t=(1,2,3)+(4,5,6)t=(1,2)*3t*=2id(x)函数id(x)用于返回一个对象在内存在的地址注:is运算符就是比较的内存地址示例:t=(1,2,3)id(t)t+=(4,5,6)id(t)L=[1,2,3]id(L)L.append(4)id(L)in/notin运算符:示例:t=(1,'2',3,(4+4J))2int#True?索引索引的规则等同于字符串的规则注:元组不能用索引赋值示例:t=(1,'2',3,(4+4J))t[1]=2#出错切片用法等同于字符串的切片元组的切片返回一个新的元组示例:t=tuple(range(10))t2=t[1::3]综合练习:生成一个x的平方的元组(1,4,9,16,5**2,81)思考:t=(abc,[1,2,3])t[1][1]=2.2222#结果是什么?元组的方法:T代表元组T.index(value[,begin[,end]])返回对应元素的下标,如果不存在则引发ValueError异常错误T.count(value)返回元组中元素的个数序列相关的函数总结:len(seq)max(x)min(x)sum(x)any(x)all(x)str(obj)list(iterator)tuple(iterator)-------以下是新的------reversed(seq)返回反向顺序的可迭代对象sorted(iterable,reverse=False)返回已排序的列表示例:L=[3,5,9,6]#L.reverse()reversed(L)字典dict字典的定义1.字典是一种可变的容器,可以存储任意类的数据2.字典中每个数据都是用键(key)进行索引的(不象序列可以下标索引)3.字典中的数据没有先后关系,字典的存储是无序的4.字典中的数据是以键(key)-值(value)对的形式进行存储5.字典的键不能重复,且只能用不可变类型作为字典的键字典的字面值表示方法:以{}括起来,以冒号(:)分割键值对,各键值对之间用逗号(,)分隔开创建空字典:d={}创建非空字典的方法:d={name:weimingze,age:35}d={(2008,8,8):olympic}d={1:one,2:two}d={None:Wu....}字典的构造(创建)函数dict()创建一个空的字典dict(iterable)用可迭代对象创建一个字典例:d=dict()空L=[(name,weimingze),(age,35)]d=dict(L)#用可迭代对象生成字典练习:有列表:names=[weimingze,tarena,xiaozhang]ages=[35,18,20]用这两个列表生成如下字典:{weimingze:35,tarena:18,....}答案见:exercise/dict_create.py访问,添加,修改字典元素:访问语法:字典[键]例如:d={name:weimingze,age:35}print(d['name'])#获取键name对应的值添加,修改字典元素:字典[键]=值例如:d={}d[name]=weimingzed['age']=35d['age']=36del语句删除字典元素删除字典内的元素del字典[键]d={a:1,b:2,3:3.3}deld[a]获取字典中元素个数的函数len示例:d={a:1,b:2,3:3.3}print(len(d))#3字典的成员资数判断in/notin运算符作用:用in运算符来判断一个键是否存在于字典中,如果存在则返回True,否则返回Falsenotin与in返回值相反例:d={a:1,b:2,3:3.3}aind#Truecind#False2ind#False字典的迭代访问:字典是可迭代对象对字典迭代,只能获取键,且不保证顺序是一定的d={name:tarena,birthday:2002}forxind:print(x)字典的方法:D代表字典D.clear()清空字典D.pop(key)移除键,同时返回此键对应的值D.copy()返回字典的副本,只复制一层(浅拷贝)D.update(D2)将字典D2合并到D中,如果键相同,则此键的值取D2的值作为新值D.get(key,default)返回键key所对应的值,如果没有键,则返回defaultD.keys()返回可迭代的dict_keys集合对象D.values()返回可迭代的dict_values值对象D.items()返回可迭代的dict_items对象reversed(x)返回迭代器序列,字典是可迭代对象L=[1,3,5,7,9]#第一段代码it=reversed(L)L2=[xforxinit]#L2=[9,7,5,3,1]L3=[xforxinit]#L3=[]#第二段代表L2=[xforxinreversed(L)]#L2=[9,7,5,3,1]L3=[xforxinreversed(L)]#L3=[9,7,5,3,1]模块module什么模块:模块是包含一系列的变量,函数,类等程序组模块通常是一个文件,以.py结尾作用:1.让一些相关的函数,变量,类等有逻辑的组织在一起,使逻辑更加清晰2.模块中的变量,函数和类等可提供给其它模块或程序使用模块的分类:1.内置模块(builtins)在解释器的内部,可以直接使用2.标准库模块,随python的解释器一起安装,可直接使用3.第三方模块(通常为开源),需要自己安装4.用户自定义模块模块的导入import语句1.import语句2.fromxxximportyyy3.fromxxximport*1.import语句import模块名1[as模块新名1][,模块名2[as模块新名2]]...注:[]内部的可省略示例:importmath#导入数学模块importos,sys作用:将模块整体导入到当前的模块作用域用法:模块名.属性名math.factorial(5)#求5的阶乘dir(obj)函数,返回所有属性的字符串列表help(obj)函数,可以查看模块相关的文档字符串2.fromimport语句作用:将某模块的一个或多个属性导入到当前模块的作用域语法:from模块名import模块属性名1[as属性新名1][,模块名属性2[as属性新名2]]示例:frommathimportsinfrommathimportpi#将math.pi导入到当前frommathimportfactorialasfac3.fromimport*语句语法:from模块名import*作用:
本文标题:76python语法
链接地址:https://www.777doc.com/doc-4342305 .html