




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. list 方法一、创建一个列表只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:复制代码代码如下:list1 = 'physics', 'chemistry', 1997, 2000;list2 = 1, 2, 3, 4, 5 ;list3 = "a", "b", "c", "d"与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。二、访问列表中的值使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:复制代码代码如下:#!/usr
2、/bin/pythonlist1 = 'physics', 'chemistry', 1997, 2000;list2 = 1, 2, 3, 4, 5, 6, 7 ;print "list10: ", list10print "list21:5: ", list21:5以上实例输出结果:复制代码代码如下:list10: physicslist21:5: 2, 3, 4, 5三、更新列表你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:复制代码代码如下:#!/
3、usr/bin/pythonlist = 'physics', 'chemistry', 1997, 2000;print "Value available at index 2 : "print list2;list2 = 2001;print "New value available at index 2 : "print list2;以上实例输出结果:复制代码代码如下:Value available at index 2 :1997New value available at index 2 :2001四、删除列表元
4、素可以使用 del 语句来删除列表的的元素,如下实例:复制代码代码如下:#!/usr/bin/pythonlist1 = 'physics', 'chemistry', 1997, 2000;print list1;del list12;print "After deleting value at index 2 : "print list1;以上实例输出结果:复制代码代码如下:'physics', 'chemistry', 1997, 2000After deleting value at index 2 :
5、'physics', 'chemistry', 2000五、Python列表脚本操作符列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。如下所示: Python 表达式结果描述len(1, 2, 3)3长度1, 2, 3 + 4, 5, 61, 2, 3, 4, 5, 6组合'Hi!' * 4'Hi!', 'Hi!', 'Hi!', 'Hi!'重复3 in 1, 2, 3True元素是否存在于列表中for x in 1, 2, 3: prin
6、t x,1 2 3迭代六、Python列表截取Python的列表截取与字符串操作类型,如下所示:复制代码代码如下:L = 'spam', 'Spam', 'SPAM!'操作:Python 表达式结果描述L2'SPAM!'读取列表中第三个元素L-2'Spam'读取列表中倒数第二个元素L1:'Spam', 'SPAM!'从第二个元素开始截取列表七、Python列表操作的函数和方法列表操作包含以下函数:1、cmp(list1, list2):比较两个列表的元素 2、len(lis
7、t):列表元素个数 3、max(list):返回列表元素最大值 4、min(list):返回列表元素最小值 5、list(seq):将元组转换为列表 列表操作包含以下方法:1、list.append(obj):在列表末尾添加新的对象2、list.count(obj):统计某个元素在列表中出现的次数3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置5、list.insert(index, obj):将对象插入列表6、list.p
8、op(obj=list-1):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值7、list.remove(obj):移除列表中某个值的第一个匹配项8、list.reverse():反向列表中元素9、list.sort(func):对原列表进行排序字典一、什么是字典?字典是Python语言中唯一的映射类型。映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。字典类型与序列类型的区别:1.存取和访问数据的方式不同。2.序列类型只用数字类
9、型的键(从序列的开始按数值顺序索引);3.映射类型可以用其他对象类型作键(如:数字、字符串、元祖,一般用字符串作键),和序列类型的键不同,映射类型的键直4.接或间接地和存储数据值相关联。5.映射类型中的数据是无序排列的。这和序列类型是不一样的,序列类型是以数值序排列的。6.映射类型用键直接“映射”到值。字典是Python中最强大的数据类型之一。二、如何创建字典和给字典赋值简单地说字典就是用大括号包裹的键值对的集合。(键值对也被称作项)一般形式:复制代码代码如下:adict = adict = key1:value2, key2:value2, 或用dict()函数,如,adict = dict
10、() 或 adict = dict('x',1,'y',2)这样写对吗?adict = dict('x',1,'y',2)。关键字参数创建字典,如:adict= dict(name='allen',age='40)或用fromkeys()方法,如,adict = .fromkeys(x','y'), -1) 这样创建的字典的value是一样的,若不给值,默认为None。特点:1、键与值用冒号“:”分开;2、项与项用逗号“,”分开;3、字典中的键必须是唯一的,而值可以不唯一。复制代码代
11、码如下:adict = name':'allen', name':'lucy', age':'40 与 bdict = name':'allen', name2:'allen', age':'40注意:如果字典中的值为数字,最好使用字符串数字形式,如:'age':'040 而不用 age':040三、字典的基本操作1、如何访问字典中的值?adictkey 形式返回键key对应的值value,如果key不在字典中会引发一个KeyError。2、如
12、何检查key是否在字典中?a、has_key()方法 形如:adict.haskey(name') 有>True,无>Falseb、in 、not in 形如:'name' in adict 有>True,无>False3、如何更新字典?a、添加一个数据项(新元素)或键值对adictnew_key = value 形式添加一个项b、更新一个数据项(元素)或键值对adictold_key = new_valuec、删除一个数据项(元素)或键值对del adictke
13、y 删除键key的项 / del adict 删除整个字典adict.pop(key) 删除键key的项并返回key对应的 value值四、映射类型操作符标准类型操作符(+,-,*,<,>,<=,>=,=,!=,and,or, not)a、字典不支持拼接和重复操作符(+,*)b、字典的比较操作先比较字典的长度也就是字典的元素个数键比较值比较例子:复制代码代码如下:adict = bdict = name':'allen', age':'40cmp(adict, bdict) < >-1 or > &g
14、t;1 or = >0五、映射相关的函数1、len() 返回字典的长度2、hash() 返回对象的哈希值,可以用来判断一个对象能否用来作为字典的键3、dict() 工厂函数,用来创建字典六、字典的方法1、adict.keys() 返回一个包含字典所有KEY的列表;2、adict.values() 返回一个包含字典所有value的列表;3、adict.items() 返回一个包含所有(键,值)元祖的列表;4、adict.clear() 删除字典中的所有项或元素;5、adict.copy() 返回一个字典浅拷贝的副本;6、adict.fromkeys(seq, val=None)
15、 创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None);7、adict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None);8、adict.has_key(key) 如果key在字典中,返回True,否则返回False。 现在用 in 、 not in;9、adict.iteritems()、adict.iterkeys()、adict.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;10、
16、adict.pop(key,default) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;11、adict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key键,由 adictkey = default 为它赋值;12、adict.update(bdict) 将字典bdict的键值对添加到字典adict中。七、字典的遍历1、遍历字典的key(键)复制代码代码如下:for key in adict.keys():print key2、遍
17、历字典的value(值)复制代码代码如下:for value in adict.values(): print value3、遍历字典的项(元素)复制代码代码如下:for item in adict.items():print item4、遍历字典的key-value复制代码代码如下:for item,value in adict.items(): print key=%s, value=%s' %(item, value) 或 for item,value in adict.iteritems(): print key=%s, value=%s
18、39; %(item, value)集合 set 是一个无序的元素集合,支持并、交、差及对称差等数学运算, 但由于 set 不记录元素位置,因此不支持索引、分片等类序列的操作。初始化复制代码代码如下:s0 = set()d0 = s1 = 0s2 = i % 2 for i in range(10)s = set('hi')t = set('h', 'e', 'l', 'l', 'o')print(s0, s1, s2, s, t, type(d0)运行结果:复制代码代码如下:set() 0 0,
19、1 'i', 'h' 'e', 'o', 'l', 'h' <class 'dict'>提示1.s0、d0:使用 只能创建空字典,创建空集必须用 set();2.ss、sl:set 中的元素是 无序不重复 的,可以利用这个特点去除列表中的重复元素。运算操作复制代码代码如下:print(ersection(t), s & t) # 交集print(s.union(t), s | t) # 并集 pri
20、nt(s.difference(t), s - t) # 差集 print(s.symmetric_difference(t), s t) # 对称差集 print(s1.issubset(s2), s1 <= s2) # 子集print(s1.issuperset(s2), s1 >= s2) # 包含运行结果:复制代码代码如下:'h' 'h''l', 'h', 'i', '
21、;o', 'e' 'l', 'h', 'i', 'o', 'e''i' 'i''i', 'l', 'o', 'e' 'i', 'l', 'o', 'e'True TrueFalse False提示1.非运算符的方法接受任何可迭代对象作为参数,如 s.update(0, 1);2.其他等价操作:s.update(t) 与 s |= t,
22、ersection_update(t) 与 s &= t,s.difference_update(t) 与 s -= t,s.symmetric_difference_update(t) 与 s = t 等。基本方法复制代码代码如下:s = 0print(s, len(s) # 获取集合中的元素的总数s.add("x") # 添加一个元素print(s)s.update(1,2,3) # 添加多个元素print(s, &quo
23、t;x" in s) # 成员资格测试s.remove("x") # 去掉一个元素print(s, "x" not in s) s.discard("x") # 如果集合存在指定元素,则删除该元素c = s.copy() # 复制集合 print(s, s.pop()&
24、#160; # 弹出集合中的一个不确定元素,如果原集合为空则引发 KeyErrors.clear() # 删除集合中的元素print(s, c)运行结果:复制代码代码如下:0 10, 'x'0, 'x', 1, 2, 3 True0, 1, 2, 3 True1, 2, 3 0set() 0, 1, 2, 3Str字符串方法1、去空格及特殊符号复制代码代码如下:s.strip().lstrip().rstrip(',')2、复制字符串复制代
25、码代码如下:#strcpy(sStr1,sStr2)sStr1 = 'strcpy'sStr2 = sStr1sStr1 = 'strcpy2'print sStr23、连接字符串复制代码代码如下:#strcat(sStr1,sStr2)sStr1 = 'strcat'sStr2 = 'append'sStr1 += sStr2print sStr14、查找字符复制代码代码如下:#strchr(sStr1,sStr2)# < 0 为未找到sStr1 = 'strchr'sStr2 = 's'n
26、Pos = sStr1.index(sStr2)print nPos5、比较字符串复制代码代码如下:#strcmp(sStr1,sStr2)sStr1 = 'strchr'sStr2 = 'strch'print cmp(sStr1,sStr2)6、扫描字符串是否包含指定的字符复制代码代码如下:#strspn(sStr1,sStr2)sStr1 = '12345678'sStr2 = '456'#sStr1 and chars both in sStr1 and sStr2print len(sStr1 and sStr2)7、字
27、符串长度复制代码代码如下:#strlen(sStr1)sStr1 = 'strlen'print len(sStr1)8、将字符串中的大小写转换复制代码代码如下:S.lower() #小写 S.upper() #大写 S.swapcase() #大小写互换 S.capitalize() #首字母大写 String.capwords(S) #这是模块中的方法。它把S用split()函数分开,然后用capitalize()把首字母变成大写,最后用join()合并到一起 #实例:#strlwr(sStr1)sStr1 = 'J
28、Cstrlwr'sStr1 = sStr1.upper()#sStr1 = sStr1.lower()print sStr19、追加指定长度的字符串复制代码代码如下:#strncat(sStr1,sStr2,n)sStr1 = '12345'sStr2 = 'abcdef'n = 3sStr1 += sStr20:nprint sStr110、字符串指定长度比较复制代码代码如下:#strncmp(sStr1,sStr2,n)sStr1 = '12345'sStr2 = '123bc'n = 3print cmp(sStr1
29、0:n,sStr20:n)11、复制指定长度的字符复制代码代码如下:#strncpy(sStr1,sStr2,n)sStr1 = ''sStr2 = '12345'n = 3sStr1 = sStr20:nprint sStr112、将字符串前n个字符替换为指定的字符复制代码代码如下:#strnset(sStr1,ch,n)sStr1 = '12345'ch = 'r'n = 3sStr1 = n * ch + sStr13:print sStr113、扫描字符串复制代码代码如下:#strpbrk(sStr1,sStr2)sStr
30、1 = 'cekjgdklab'sStr2 = 'gka'nPos = -1for c in sStr1: if c in sStr2: nPos = sStr1.index(c) breakprint nPos14、翻转字符串复制代码代码如下:#strrev(sStr1)sStr1 = 'abcdefg'sStr1 = sStr1:-1prin
31、t sStr115、查找字符串复制代码代码如下:#strstr(sStr1,sStr2)sStr1 = 'abcdefg'sStr2 = 'cde'print sStr1.find(sStr2)16、分割字符串复制代码代码如下:#strtok(sStr1,sStr2)sStr1 = 'ab,cde,fgh,ijk'sStr2 = ','sStr1 = sStr1sStr1.find(sStr2) + 1:print sStr1#或者s = 'ab,cde,fgh,ijk'print(s.split(',
32、39;)17、连接字符串复制代码代码如下:delimiter = ','mylist = 'Brazil', 'Russia', 'India', 'China'print delimiter.join(mylist)18、PHP 中 addslashes 的实现复制代码代码如下:def addslashes(s): d = '"':'"', "'":"'", "
33、0":"0", "":"" return ''.join(d.get(c, c) for c in s)s = "John 'Johny' Doe (a.k.a. "Super Joe")0"print sprint addslashes(s)19、只显示字母与数字复制代码代码如下:def OnlyCharNum(s,oth=''): s2 = s.lower();&
34、#160; fomart = 'abcdefghijklmnopqrstuvwxyz0123456789' for c in s2: if not c in fomart: s = s.replace(c,''); return s;print(OnlyS
35、tr("a000 aa-b")20、截取字符串复制代码代码如下:str = '0123456789print str0:3 #截取第一位到第三位的字符print str: #截取字符串的全部字符print str6: #截取第七个字符到结尾print str:-3 #截取从头开始到倒数第三个字符之前print str2 #截取第三个字符print str-1 #截取倒数第一个字符print str:-1 #创造一个与原字符串顺序相反的字符串print str-3:-1 #截取倒数第三位与倒数第一位之前的字符print str-3: #截取倒数第三位到结尾print
36、str:-5:-3 #逆序截取,具体啥意思没搞明白?21、字符串在输出时的对齐 复制代码代码如下:S.ljust(width,fillchar) #输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。 S.rjust(width,fillchar) #右对齐 S.center(width, fillchar) #中间对齐 S.zfill(width) #把S变成width长,并在右对齐,不足部分用0补足22、字符串中的搜索和替换 复制代码代码如下:S.find(substr, start, end)
37、;#返回S中出现substr的第一个字母的标号,如果S中没有substr则返回-1。start和end作用就相当于在Sstart:end中搜索 S.index(substr, start, end) #与find()相同,只是在S中没有substr时,会返回一个运行时错误 S.rfind(substr, start, end) #返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号 S.rindex(substr, start, end) S.c
38、ount(substr, start, end) #计算substr在S中出现的次数 S.replace(oldstr, newstr, count) #把S中的oldstar替换为newstr,count为替换次数。这是替换的通用形式,还有一些函数进行特殊字符的替换 S.strip(chars) #把S中前后chars中有的字符全部去掉,可以理解为把S前后chars替换为None S.lstrip(chars) S.rstrip(chars) S.expandtabs(tabsize) #把S中的tab字符替换没
39、空格,每个tab替换为tabsize个空格,默认是8个23、字符串的分割和组合 复制代码代码如下:S.split(sep, maxsplit) #以sep为分隔符,把S分成一个list。maxsplit表示分割的次数。默认的分割符为空白字符 S.rsplit(sep, maxsplit) S.splitlines(keepends) #把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。 S.join(seq) #把seq代表的序列字符串序列,用S连接起来24、字符串的mapping,这
40、一功能包含两个函数 复制代码代码如下:String.maketrans(from, to) #返回一个256个字符组成的翻译表,其中from中的字符被一一对应地转换成to,所以from和to必须是等长的。 S.translate(table,deletechars) # 使用上面的函数产后的翻译表,把S进行翻译,并把deletechars中有的字符删掉。需要注意的是,如果S为unicode字符串,那么就不支持 deletechars参数,可以使用把某个字符翻译为None的方式实现相同的功能。此外还可以使用codecs模块的功能来创建更加功能强大的翻译表。
41、25、字符串还有一对编码和解码的函数 复制代码代码如下:S.encode(encoding,errors) # 其中encoding可以有多种值,比如gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默认值为"strict",意思是UnicodeError。可能的值还有'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 和所有的通过codecs.register_error
42、注册的值。这一部分内容涉及codecs模块,不是特明白 S.decode(encoding,errors)26、字符串的测试、判断函数,这一类函数在string模块中没有,这些函数返回的都是bool值 复制代码代码如下:S.startswith(prefix,start,end) #是否以prefix开头 S.endswith(suffix,start,end) #以suffix结尾 S.isalnum() #是否全是字母和数字,并至少有一个字符 S.isalpha() #是否全是字母,并至少有一个字符
43、S.isdigit() #是否全是数字,并至少有一个字符 S.isspace() #是否全是空白字符,并至少有一个字符 S.islower() #S中的字母是否全是小写 S.isupper() #S中的字母是否便是大写 S.istitle() #S是否是首字母大写的27、字符串类型转换函数,这几个函数只在string模块中有复制代码代码如下:string.atoi(s,base) #base默认为10,如果为0,那么s就可以是012或0x23这种形式的字符串,如果是16那么s就只能是0x23或0X12这种形式的字符串 string.a
44、tol(s,base) #转成long string.atof(s,base) #转成floattuple元组方法一、创建元组复制代码代码如下:tup1 = ('physics', 'chemistry', 1997, 2000);tup2 = (1, 2, 3, 4, 5 );tup3 = "a", "b", "c", "d"创建空元组复制代码代码如下:tup1 = ();元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义复制代码代码如下:tup1 = (50,);
45、元组与字符串类似,下标索引从0开始,可以进行截取,组合等。二、访问元组元组可以使用下标索引来访问元组中的值,如下实例:复制代码代码如下:#!/usr/bin/pythontup1 = ('physics', 'chemistry', 1997, 2000);tup2 = (1, 2, 3, 4, 5, 6, 7 );print "tup10: ", tup10print "tup21:5: ", tup21:5#以上实例输出结果:#tup10: physics#tup21:5: 2, 3, 4, 5
46、三、修改元组元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:复制代码代码如下:#!/usr/bin/pythontup1 = (12, 34.56);tup2 = ('abc', 'xyz');# 以下修改元组元素操作是非法的。# tup10 = 100;# 创建一个新的元组tup3 = tup1 + tup2;print tup3;#以上实例输出结果:#(12, 34.56, 'abc', 'xyz')四、删除元组元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:复制代码代码如
47、下:#!/usr/bin/pythontup = ('physics', 'chemistry', 1997, 2000);print tup;del tup;print "After deleting tup : "print tup;#以上实例元组被删除后,输出变量会有异常信息,输出如下所示:#('physics', 'chemistry', 1997, 2000)#After deleting tup :#Traceback (most recent call last):# File &qu
48、ot;test.py", line 9, in <module># print tup;#NameError: name 'tup' is not defined/code五、元组运算符与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。六、元组索引,截取因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:元组:复制代码代码如下:L = ('spam', 'Spam', 'SPAM!')七、无关闭分隔符任意无符号的对象,以逗号隔开,默认为元组,如下实例:复制代码代码如下:#!/usr/bin/pythonprint 'abc', -4.24e93, 18+6.6j, 'xyz'x, y = 1, 2;print "Value of x , y : ", x,y;以上实例允
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土地房屋测绘项目投标方案技术标
- 管理会计试卷及答案 卷1
- 5.2 生活中的透镜 说课稿 2025年初中人教版物理八年级上册
- 接尘作业对外周血象和肝功能指标的影响分析
- 《深度学习项目案例开发》课件-任务一 使用神经网络完成服饰图像分类
- 车间定制管理及安全文明设施采购 投标方案(技术方案)
- 购物中心用地居间合同
- 农业行业智能灌溉与农产品追溯系统方案
- 国内经济环境现状分析
- 光伏太阳能发电技术
- 2025年阜阳幼儿师范高等专科学校单招职业技能考试题库学生专用
- 2025年安徽工业经济职业技术学院单招职业适应性测试题库附答案
- 2025湖北市政建设集团有限公司管理岗位公开竞聘14人笔试参考题库附带答案详解
- 3.13跨学科主题活动-在线学习小能手 课件 川教版(2024)三年级下册信息科技
- 矿产勘探数据分析-深度研究
- 2025年北京控股集团有限公司招聘笔试参考题库含答案解析
- 2024年07月江苏银行招考笔试历年参考题库附带答案详解
- 小学生药品安全课件图片
- 2021年煤矿应急资源调查报告
- 新入职员工年终工作总结课件
- 专题10 开展心理健康教育 促进身心健康成长-备战2023年中考英语阅读理解时文爆点专题训练(解析版)
评论
0/150
提交评论