1.列表、元组操作
列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作
切片:取多个元素
1 >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"] 2 >>> names[1:4] #取下标1至下标4之间的数字,包括1,不包括4 3 ['Tenglan', 'Eric', 'Rain'] 4 >>> names[1:-1] #取下标1至-1的值,不包括-1 5 ['Tenglan', 'Eric', 'Rain', 'Tom'] 6 >>> names[0:3] 7 ['Alex', 'Tenglan', 'Eric'] 8 >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样 9 ['Alex', 'Tenglan', 'Eric'] 10 >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写 11 ['Rain', 'Tom', 'Amy'] 12 >>> names[3:-1] #这样-1就不会被包含了 13 ['Rain', 'Tom'] 14 >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个 15 ['Alex', 'Eric', 'Tom'] 16 >>> names[::2] #和上句效果一样 17 ['Alex', 'Eric', 'Tom']
1 names = ["zhangsan","lisi","wangwu","zhaoliu",["libai","lihe","ligui","lishangyin"],"libai"] 2 3 print (names[1]) 4 print (names[0:5:2]) 5 print (names[0:3]) #查看元素 6 names [1] = "李四" #修改元素 7 names.append("libai") #增加元素 8 names.insert(2,"dufu") #插入元素 9 names.remove("wangwu") 10 del names[2] #删除元素 11 names.sort() #排序 12 names.pop(2) #删除特定元素,括号内不标注表示最后一个 13 names.reverse() #反转 14 names.clear() #清空列表 15 print (names.index("zhangsan")) #查看元素第一次出现的下标 16 print (len(names)) #列表的长度 17 print (names.count("libai")) #统计元素出现的次数 18 19 name2= [1,2,3,4] 20 names.extend(name2) #扩展元素
元组
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
它只有2个方法,一个是count,一个是index,完毕。
2.字符串操作
特性:不可修改
1 name.capitalize() 首字母大写 2 name.casefold() 大写全部变小写 3 name.center(50,"-") 输出 '---------------------Alex Li----------------------' 4 name.count('lex') 统计 lex出现次数 5 name.encode() 将字符串编码成bytes格式 6 name.endswith("Li") 判断字符串是否以 Li结尾 7 "Alex Li".expandtabs(10) 输出'Alex Li', 将 转换成多长的空格 8 name.find('A') 查找A,找到返回其索引, 找不到返回-1 9 10 format : 11 >>> msg = "my name is {}, and age is {}" 12 >>> msg.format("alex",22) 13 'my name is alex, and age is 22' 14 >>> msg = "my name is {1}, and age is {0}" 15 >>> msg.format("alex",22) 16 'my name is 22, and age is alex' 17 >>> msg = "my name is {name}, and age is {age}" 18 >>> msg.format(age=22,name="ale") 19 'my name is ale, and age is 22' 20 format_map 21 >>> msg.format_map({'name':'alex','age':22}) 22 'my name is alex, and age is 22' 23 24 25 msg.index('a') 返回a所在字符串的索引 26 '9aA'.isalnum() True 27 28 '9'.isdigit() 是否整数 29 name.isnumeric 30 name.isprintable 31 name.isspace 32 name.istitle 33 name.isupper 34 "|".join(['alex','jack','rain']) 35 'alex|jack|rain' 36 37 38 maketrans 39 >>> intab = "aeiou" #This is the string having actual characters. 40 >>> outtab = "12345" #This is the string having corresponding mapping character 41 >>> trantab = str.maketrans(intab, outtab) 42 >>> 43 >>> str = "this is string example....wow!!!" 44 >>> str.translate(trantab) 45 'th3s 3s str3ng 2x1mpl2....w4w!!!' 46 47 msg.partition('is') 输出 ('my name ', 'is', ' {name}, and age is {age}') 48 49 >>> "alex li, chinese name is lijie".replace("li","LI",1) 50 'alex LI, chinese name is lijie' 51 52 msg.swapcase 大小写互换 53 54 55 >>> msg.zfill(40) 56 '00000my name is {name}, and age is {age}' 57 58 59 60 >>> n4.ljust(40,"-") 61 'Hello 2orld-----------------------------' 62 >>> n4.rjust(40,"-") 63 '-----------------------------Hello 2orld' 64 65 66 >>> b="ddefdsdff_哈哈" 67 >>> b.isidentifier() #检测一段字符串可否被当作标志符,即是否符合变量命名规则 68 True
1、去空格及特殊符号
s.strip().lstrip().rstrip(',')
2、复制字符串
1 #strcpy(sStr1,sStr2) 2 sStr1 = 'strcpy' 3 sStr2 = sStr1 4 sStr1 = 'strcpy2' 5 print sStr2
3、连接字符串
1 #strcat(sStr1,sStr2) 2 sStr1 = 'strcat' 3 sStr2 = 'append' 4 sStr1 += sStr2 5 print sStr1
4、查找字符
1 #strchr(sStr1,sStr2) 2 # < 0 为未找到 3 sStr1 = 'strchr' 4 sStr2 = 's' 5 nPos = sStr1.index(sStr2) 6 print nPos
5、比较字符串
1 #strcmp(sStr1,sStr2) 2 sStr1 = 'strchr' 3 sStr2 = 'strch' 4 print cmp(sStr1,sStr2)
6、扫描字符串是否包含指定的字符
1 #strspn(sStr1,sStr2) 2 sStr1 = '12345678' 3 sStr2 = '456' 4 #sStr1 and chars both in sStr1 and sStr2 5 print len(sStr1 and sStr2)
7、字符串长度
1 #strlen(sStr1) 2 sStr1 = 'strlen' 3 print len(sStr1)
8、将字符串中的大小写转换
S.lower() #小写 S.upper() #大写 S.swapcase() #大小写互换 S.capitalize() #首字母大写 String.capwords(S) #这是模块中的方法。它把S用split()函数分开,然后用capitalize()把首字母变成大写,最后用join()合并到一起 #实例: #strlwr(sStr1) sStr1 = 'JCstrlwr' sStr1 = sStr1.upper() #sStr1 = sStr1.lower() print sStr1
9、追加指定长度的字符串
1 #strncat(sStr1,sStr2,n) 2 sStr1 = '12345' 3 sStr2 = 'abcdef' 4 n = 3 5 sStr1 += sStr2[0:n] 6 print sStr1
10、字符串指定长度比较
1 #strncmp(sStr1,sStr2,n) 2 sStr1 = '12345' 3 sStr2 = '123bc' 4 n = 3 5 print cmp(sStr1[0:n],sStr2[0:n])
11、复制指定长度的字符
1 #strncpy(sStr1,sStr2,n) 2 sStr1 = '' 3 sStr2 = '12345' 4 n = 3 5 sStr1 = sStr2[0:n] 6 print sStr1
12、将字符串前n个字符替换为指定的字符
1 #strnset(sStr1,ch,n) 2 sStr1 = '12345' 3 ch = 'r' 4 n = 3 5 sStr1 = n * ch + sStr1[3:] 6 print sStr1
13、扫描字符串
1 #strpbrk(sStr1,sStr2) 2 sStr1 = 'cekjgdklab' 3 sStr2 = 'gka' 4 nPos = -1 5 for c in sStr1: 6 if c in sStr2: 7 nPos = sStr1.index(c) 8 break 9 print nPos
14、翻转字符串
1 #strrev(sStr1) 2 sStr1 = 'abcdefg' 3 sStr1 = sStr1[::-1] 4 print sStr1
15、查找字符串
1 #strstr(sStr1,sStr2) 2 sStr1 = 'abcdefg' 3 sStr2 = 'cde' 4 print sStr1.find(sStr2)
16、分割字符串
1 #strtok(sStr1,sStr2) 2 sStr1 = 'ab,cde,fgh,ijk' 3 sStr2 = ',' 4 sStr1 = sStr1[sStr1.find(sStr2) + 1:] 5 print sStr1 6 #或者 7 s = 'ab,cde,fgh,ijk' 8 print(s.split(','))
17、连接字符串
1 delimiter = ',' 2 mylist = ['Brazil', 'Russia', 'India', 'China'] 3 print delimiter.join(mylist)
18、PHP 中 addslashes 的实现
1 def addslashes(s): 2 d = {'"':'\"', "'":"\'", "