字符串方法

1、find()方法
 1 #find方法用于检测字符串中是否包含子字符串str。如果指定beg(开始)何end(结束)范围,就检查是否包含在指定范围内。如果包含子字符串,就返回开始的索引值;否则返回-1.
 2 #find()方法的语法如下:
 3 >>>str.find(str,beg=0,end=len(string))
 4 #此语法中str代表指定检索的字符串,beg代表开始索引,默认为0,end代表结束索引,默认为字符串的长度。返回结果为子字符串所在位置的最左端索引,如果没有找到,就返回-1.
 5 #示例如下:
 6 >>> target='Just do it'
 7 >>> target.find('do')
 8 5
 9 >>> target.find('it')
10 8
11 >>> target.find('t')
12 3
13 >>> target.find('now')
14 -1
15 #由输出结果看到,如果找到字符串,就返回对应的索引值,如果没有找到字符串,就返回-1.
16 #字符串的find方法返回的不是布尔值,如果返回0,就表示在索引0处找到了子字符串。
17 >>> target.find('j')
18 -1
19 >>> target.find('J')
20 0
21 
22 #find()方法还可以接受参数,用于表示起始点和终点,示例:
23 >>> target.find('t',4)
24 9
25 >>> target.find('t',2)
26 3
27 >>> target.find('t',0,8)
28 3
29 >>> target.find('t',4,9)
30 -1
31 >>> target.find('t',4,10)
32 9
33 #由输出结果看到,可以通过使用起始值和终止值查找指定的范围内是否存在指定字符串。
2、join()方法
 1 #join()方法用于将序列中的元素以指定字符连接成一个新字符串。
 2 #join()方法的语法如下:
 3 >>>str.join(sequence)
 4 #此语法中str代表指定检索的字符串,sequence代表要连接的元素序列。返回结果为指定字符连接序列中元素后生成的新字符串。
 5 #该方法示例如下:
 6 >>> numbers=[1,2,3,4,5]
 7 >>> target.join(numbers)
 8 Traceback (most recent call last):
 9   File "<pyshell#20>", line 1, in <module>
10     target.join(numbers)
11 TypeError: sequence item 0: expected str instance, int found
12 >>> numbers.join(target)
13 Traceback (most recent call last):
14   File "<pyshell#22>", line 1, in <module>
15     numbers.join(target)
16 AttributeError: 'list' object has no attribute 'join'
17 >>> num=['1','2','3','4','5']
18 >>> mark='+'
19 >>> mark.join(num)
20 '1+2+3+4+5'
21 >>> print('连接字符串列表:',mark.join(num))
22 连接字符串列表: 1+2+3+4+5
23 >>> dirs='','home','data','hdfs'
24 >>> print('路径:','/'.join(dirs))
25 路径: /home/data/hdfs
26 #由输出结果看到,进行join操作调用和被调用的对象必须都是字符串,任意一个不是字符串都会报错。
3、lower()方法
 1 #lower()方法用于将字符串中所有大写字符转换为小写。
 2 #lower()语法如下:
 3 >>>str.lower()
 4 #此语法中str代表指定检索的字符串,该方法不需要参数。返回结果为字符串中所有大写字符转换为小写后生成的字符串。
 5 #示例如下:
 6 >>> target='JUST DO IT'
 7 >>> print('调用lower得到字符串:',target.lower())
 8 调用lower得到字符串: just do it
 9 >>> greeting='Hello World'
10 >>> print('调用lower得到字符串:',greeting.lower())
11 调用lower得到字符串: hello world
12 #由输出结果看到,字符串中的大写字母全部转换为小写字母了。
13 #如果想要编写“不区分大小写”的代码,就可以使用lower方法。如果想要在一个字符串中查找某个子字符串并忽略大小写,也可以使用lower方法,示例如下:
14 >>> target='JUST DO IT'
15 >>> target.find(t)
16 Traceback (most recent call last):
17   File "<pyshell#72>", line 1, in <module>
18     target.find(t)
19 NameError: name 't' is not defined
20 >>> target.find('It')     #不转换为小写,找不到匹配字符串
21 -1
22 >>> target.lower().find('It')   #被查找字符串不转换为小写,找不到匹配字符串
23 -1
24 >>> target.lower().find('t')
25 3
26 >>> target.lower().find('It'.lower())    #使用lower方法转换成小写后查找
27 8
28 #由输出结果看到,字符串全部转换为小写后能匹配到对应子串。
4、upper()方法
 1 #upper()方法用于将字符串中的小写字母转换为大写字母。
 2 #upper()方法语法如下:
 3 >>>str.upper()
 4 #此语法中str代表指定检索的字符串,该方法不需要参数。返回结果为小写字母转换为大写字母的字符串。
 5 #示例如下:
 6 >>> target='just do it'
 7 >>> print('调用upper方法后:',target.upper())
 8 调用upper方法后: JUST DO IT
 9 >>> print('调用upper方法后:',greeting.upper())
10 调用upper方法后: HELLO WORDL
11 #由输出结果看到,字符串中的小写字母全部转换为大写字母。
12 #如果想要编写“不区分大小写”的代码,就可以使用upper方法,如果想要在一个字符串中查找某个子字符串并忽略大小写,也可以使用upper方法,示例如下:
13 >>> target='just do it'
14 >>> target.find('It')   #不转换为大写,将找不到匹配字符串
15 -1
16 >>> target.upper().find('It')  #被查找字符串不转换为大写,将找不到匹配字符串
17 -1
18 >>> target.upper().find('It'.upper())  #使用upper转换为大写后查找
19 8
20 #由输出结果看到,字符串全部转换为大写后能找到对应子字符串。
5、swapcase()方法
 1 #swapcase()方法用于对字符串的大小写字母进行转换,将字符串中的大写转换为小写,小写转换为大写。
 2 #swapcase()方法语法如下:
 3 >>>str.swapcase()
 4 #此语法中str代表指定检索的字符串,该方法不需要参数。返回结果为大小写字母转换后生成的新字符串,示例如下:
 5 >>> target='Just dO iT,nOw'
 6 >>> print('调用swapcase方法前:',target)
 7 调用swapcase方法前: Just dO iT,nOw
 8 >>> print('调用swapcase方法后:',target.swapcase)
 9 调用swapcase方法后: <built-in method swapcase of str object at 0x0386FC00>  #错误!
10 >>> print('调用swapcase方法后:',target.swapcase())
11 调用swapcase方法后: jUST Do It,NoW
12 #由输出结果看到,调用该方法后,输出结果中的大写字母变成了小写、小写字母变成了大写。
6、replace()方法
 1 #replace()方法把字符串中的old(旧字符串)替换成new(新字符串),如果指定了第3个参数max,替换次数就不超过max次。
 2 #replace()方法的语法如下:
 3 >>>str.replace(old,new[,max])
 4 #此语法中str代表指定检索的字符串;old代表将被替换的子字符串;new代表新字符串,用于替换old子字符串;max代表可选字符串,替换次数不超过max次。返回结果为字符串中的old(旧字符串)替换new(新字符串)后生成的新字符串,如果指定第3个参数max,替换次数就不超过max次。
 5 #示例如下:
 6 >>> target='do it now,right now'
 7 >>> print('原字符串:',target)
 8 原字符串: do it now,right now
 9 >>> print('新字符串:',target.replace('do','just do'))
10 新字符串: just do it now,right now
11 >>> print('新字符串:',target.replace('o','just',1))
12 新字符串: djust it now,right now
13 >>> print('新字符串:',target.replace('o','just',2))
14 新字符串: djust it njustw,right now
15 >>> print('新字符串:',target.replace('o','just',3))
16 新字符串: djust it njustw,right njustw
17 #由输出结果看到,当不指定第3个参数时,所有匹配字符都被替换;指定第3个字符时,替换从左往右进行,替换次数不超过指定次数。
7、split()方法
 1 #split()方法通过指定分隔符对字符串进行切片,如果参数num有指定值,就只分隔num个子字符串。这是一个非常重要的字符串方法,是join的逆方法,用来将字符串分割成序列。
 2 #split()方法语法如下:
 3 >>>str.split(st="",num=string.count(str))
 4 #此语法中str代表指定检索的字符串;st代表分隔符,默认为空格;num代表分割次数。
 5 返回结果为分割后的字符串列表。
 6 #该方法使用示例如下:
 7 >>> target='just do it,now do'
 8 >>> print('不提供任何分割符分隔后的字符串:',target.split())
 9 不提供任何分割符分隔后的字符串: ['just', 'do', 'it,now', 'do']
10 >>> print('根据i分隔后的字符串:',target.split('i'))
11 根据i分隔后的字符串: ['just do ', 't,now do']
12 >>> print('根据o分隔后的字符串:',target.split('o'))
13 根据o分隔后的字符串: ['just d', ' it,n', 'w d', '']
14 >>> print('根据o分隔1一次后的字符串:'target.split('0',1))
15 SyntaxError: invalid syntax
16 >>> print('根据o分隔一次后的字符串:',target.split('o',1))
17 根据o分隔一次后的字符串: ['just d', ' it,now do']
18 >>> print('根据d分隔两次后的字符串:',target.split('d',2))
19 根据d分隔两次后的字符串: ['just ', 'o it,now ', 'o']
20 #由输出结果看到,如果不提供分隔符,程序就会把所有空格作为分割符。操作中可以指定分隔符和分割次数,若指定分割次数,则从左往右检索和分隔符匹配的字符,分割次数不超过指定次数;若不指定次数,则所有匹配字符都会被分割。

8、strip

 1 #strip()方法用于移除字符串头尾指定的字符(默认为空格)。
 2 #strip()方法的语法如下:
 3 >>>str.strip([chars])
 4 #此语法中str代表指定检索的字符串,chars代表移除字符串头尾指定的字符。返回结果为移除字符串头尾指定的字符生成的新字符串。
 5 #示例如下:
 6 >>> target='---just do it---'
 7 >>> print('原字符串:',target)
 8 原字符串: ---just do it---
 9 >>> print('新字符串:',target.strip('-'))
10 新字符串: just do it
11 >>> target='---just---do---it---'
12 >>> print('原字符串:',target)
13 原字符串: ---just---do---it---
14 >>> print('新字符串:',target.strip('-'))
15 新字符串: just---do---it
16 #由操作结果看到,strip方法只移除了头尾匹配的字符,中间匹配的字符不会被移除。
9、translate()
 1 #translata()方法根据参数table给出的表(包含256个字符)转换字符串的字符,将要过滤掉的字符放到del参数中。
 2 #translate()语法如下
 3 >>>str.translate(table[,deletechars])
 4 #此语法中str代表指定检索的字符串;table代表翻译表,翻译表通过maketrans方法转换而来;deletechars代表字符串中要过滤的字符列表。返回结果为翻译后的字符串。
 5 #示例如下:
 6 >>> intab='adfas'
 7 >>> outtab='12345'
 8 >>> trantab=str.maketrans(intab,outtab)
 9 >>> intab
10 'adfas'
11 >>> outtab
12 '12345'
13 >>> str
14 <class 'str'>
15 >>> trantab
16 {97: 52, 100: 50, 102: 51, 115: 53}
17 >>> st='just do it'
18 >>> st
19 'just do it'
20 >>> print('str调用translate方法后:',st.translate(trantab))
21 str调用translate方法后: ju5t 2o it
22 #由输出结果看到,有几个字符被替换成了数字,被替换的字符既在intab变量中,又在st变量中,如图所示。对于既在intab中,又在st中的字符,使用outtab中对应的字符替换。如图可知,intab中的字符d对应的outtab中的字符2、字符s对应字符5,所以最后输出字符串中的s被替换成5、d被替换成2,这样就得到了最后我们看到的字符串ju5t 2o it。
23 #translate方法和replace方法一样,可以替换字符串中某些部分。和replace方法不同的是,translate方法只处理单个字符。translate方法的优势在于可以同时进行多个替换,有时比replace方法效率高得多。
end

原文地址:https://www.cnblogs.com/DLHe/p/7726336.html