前言
字符串作为一种重要的Python基本数据类型,在数据处理中发挥着不可或缺的作用,如果对它的方法能够灵活使用,能够达到事半功倍的效果。下面我们选取一些常用的方法,简述其应用场景。
一、最大化最小化方法
字符串的最大化方法upper()
和最小化方法lower()
可以将字符串全部转换为大写和小写。在数据处理分析过程中,如果涉及到字符串的比较和统计,尤其涉及到英文的,一般需要将字符串全部转化小写再进行比较统计,否则可能会不准。
比如根据用户的输入,决定接下来的程序是否执行,如果用户输入n则不执行,为了让程序设计的更加友好,需要考虑用户可能输入N的情况,该问题可以通过lower()
或者upper()
来解决。
1 2 3 4 5 6 | >>> choice = input (&
是否继续执行程序,输入n或N则结束:N
>>> if choice = = &
print (&
>>> if choice.lower() = = &
print (&
|
登录后复制
比如现在通过分词工具,已经把一段英文分词单词的列表,现在要统计“when”出现的次数,一般需要再统计之前将字符串全部最小化下。
1 2 3 4 5 6 7 8 | >>> words = [&
>>> count = 0
>>> sta_word = &
>>> for word in words:
if word.lower() = = sta_word:
count + = 1
>>> print (&
when出现了 3 次
|
登录后复制
二、统计次数方法
统计次数的count()
方法可以快速统计字符串中某个子串出现的次数,但这个方法在列表数据类型中应用较多,在字符串中应用很少,使用不当容易造成不易察觉的错误。
比如统计“帽子和服装如何搭配才好看”这句话中“和服”出现的次数,虽然出现了“和服”,但不是想要统计的结果,对于英文中很多单词有多种时态,更是如此。通常,在统计文本中的词频之前,需要对文本进行分词处理,对于英文文本可能还需要进行词形还原,以便更准确地统计词频。
1 2 3 4 5 6 7 8 | >>> "帽子和服装如何搭配才好看" .count( "和服" )
1
>>> import jieba
>>> words = jieba.lcut( "帽子和服装如何搭配才好看" )
>>> words
[&
>>> words.count( "和服" )
0
|
登录后复制
三、去掉左右侧字符方法
在做文本处理任务时,对于网络上爬取或者其他渠道获取的数据信息,经常会存在“噪声”,即会有一些没有实际意义的字符,干扰文本的格式和信息的提取,此时strip()
、lstrip()
、rstrip()
方法就可以帮助删除掉字符串头部和尾部的指定字符。当字符没有被指定时,默认去除空格或换行符。lstrip()
代表删除字符串左侧(即头部)出现的指定字符,rstrip()代表删除字符串右侧(即尾部)出现的指定字符。下面通过几个例子来说明。
1 2 3 4 5 6 7 8 9 10 11 | >>> temp_str = " tomorrow is another day "
>>> temp_str.strip()
&
>>> temp_str = "# tomorrow is another day @"
>>> temp_str.strip(&
&
>>> temp_str.strip(&
&
>>> temp_str = "#@ tomorrow is another day @"
>>> temp_str.lstrip(&
&
|
登录后复制
四、字符串分隔方法
当字符串具有特定的格式,或者需要处理的数据具有结构化特点,比如excel表格的数据、或者json格式的文件等,当提取其中的某一个或几个字段时,需要先对字符串进行分隔。split()
方法以指定的分隔符为基准,将分隔后得到的字符串以数组类型返回,方便进行之后的操作。当没有指定分隔符时,默认以空格分隔。
1 2 3 4 5 6 7 8 9 | >>> temp_str = "Whatever is worth doing is worth doing well"
>>> temp_str.split()
[&
>>> temp_str = "tomorrow#is#another#day"
>>> temp_str.split(&
[&
>>> temp_str = ‘ "name" : "Mike" , "age" : 18 , "sex" : "male" , "hair" : "black" &
>>> temp_str.split(&
[&
|
登录后复制
五、字符串替换方法
字符串替换也是很常用的方法之一。例如发现有输入错误的时候,正确的要替换掉错误的,或者需要将一些没有意义的字符统一去除或者换成空格的时候,都可以考虑使用replace()
方法。第三个参数为可选参数,表示替换的最大次数。
1 2 3 4 5 6 7 8 | >>> temp_str = "this is really interesting, and that is boring."
>>> temp_str.replace(&
&
>>> temp_str.replace(&
&
>>> temp_str = &
>>> temp_str.replace( "really" ,"", 2 )
&
|
登录后复制
上述示例表明,在编程中需要考虑替换字符串中所有包含目标字符串的单词的情况,而不仅仅是替换目标字符串本身。在处理英文字符串时,可以考虑在替换过程中添加空格以避免错误替换,就像第四行中的做法一样。
六、字符串拼接方法
字符串的拼接方法与其分隔方法可以看作是互逆操作,join()
方法将序列中的元素以指定的字符连接,生成一个新的字符串。这个序列可以是字符串、元组、列表、字典等。
1 2 3 4 5 6 7 8 9 10 11 12 | >>> seq = &
>>> ":" .join(seq)
&
>>> seq = (&
>>> "*" .join(seq)
&
>>> seq = [&
>>> " " .join(seq)
&
>>> seq = [&
>>> "#" .join(seq)
&
|
登录后复制
七、判断是否为数字的方法
isdigit()
方法用于判断一个字符串是否全部都由数字组成,返回值为布尔值。如果字符串中存在小数点或者符号,也不能认为全都是数字,如下例所示:
1 2 3 4 5 6 7 8 9 | >>> num = "13579"
>>> num.isdigit()
True
>>> num = &
>>> num.isdigit()
False
>>> num = &
>>> num.isdigit()
False
|
登录后复制
八、判断是否为空格的方法
isspace()
方法用于判断一个字符串是否全部都由空格组成,返回值为布尔值。要注意的是,空字符串返回False。如下例所示:
1 2 3 4 5 6 | >>> t = &
>>> t.isspace()
False
>>> t = &
>>> t.isspace()
True
|
登录后复制
九、判断前缀和后缀的方法
startswith()
和endswith()
分别用于判断字符串的前缀和后缀,即它的开始部分和结尾部分,返回值为布尔值,后面有两个可选参数,相当于对字符串做一个切片后再判断前缀/后缀。如下例所示:
1 2 3 4 5 6 7 8 9 10 11 | >>> temp_str = "Whatever is worth doing is worth doing well"
>>> temp_str.startswith( "W" )
True
>>> temp_str.startswith( "What" )
True
>>> temp_str.startswith(&
False
>>> temp_str.endswith( "well" , 2 )
True
>>> temp_str.endswith( "we" , 2 , - 2 )
True
|
登录后复制
补充:更多Python字符串常用方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | a = "hello world"
print (a[ 0 : 5 :])
print (a[:: - 1 ])
print (a[:: 1 ])
print ( len (a))
print (&
print (&
print (&
print (&
print (&
print (&
print (&
print (&
str1 = &
str2 = &
str3 = &
print (&
print (&
name1 = &
del name1
name1 = &
print (&
print (name1.lower())
print (name1.capitalize())
name2 = &
print (&
print (&
name1 = &
print (name1.split())
name1 = &
print ( "自己配置用什么东西切分" , name1.split(&
print (&
print (name1.replace(&
print (name1.replace(&
aaaaa = &
print (&
name1 = &
print (name1.strip())
name1 = &
print ( "使用find查找的索引位置" , name1.find(&
print ( "使用index查找的索引位置:" , name1.index(&
print (name1.count(&
num = &
print (num.isdigit())
num = &
print (num.isalpha())
mm = &
print (mm.startswith(&
print (mm.endswith(&
print (&
print (&
print (&
print (&
print (r&
print (&
print (&
|
登录后复制
以上是Python字符串常用方法及其应用场景实例分析的详细内容。更多信息请关注PHP中文网其他相关文章!