注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

Python字符串操作方法

Python编程 彭东稳 3626次浏览 已收录 0个评论

一、字符串操作

常用的Python字符串操作包括索引、分片、替换、删除、截取、复制、连接、比较、查找、分割等。另外Python 2字符串不支持国际编码,其大小为8bit,要想支持国际编码,需使用方法u”content”。而在Python 3中默认已经支持国际编码了,不在需要使用u可以自动识别,其大小为16bit。

  • 索引运算:key[index]

Python索引是从0开始的,当索引超出了范围时,Python会报一个IndexError错误。所以,要确保索引不要越界,记得最后一个元素的索引是len(classmates) – 1,如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素。切片操作对列表来说是使用非常广泛的,灵活性特别大。

  • 切片运算:key[index_start:index_end]

切片之后创建的是一个新的内存对象。

  • 扩展切片运算:key[index_start:index_end:stride]

  • 字符串拼接

用 + 号表示两个字符串的连接。

  • 字符串复制

用*号表示字符串复制,表达的意思其实跟数学上是一样的,多个相加嘛。

  • 字符串格式化

  • 相关函数

其实就所对应的Ascii编码最大最小的字符。

二、字符串内置方法

  • str.upper()

将一个字符串转变为大写。

  • str.lower()

将一个字符串转变为小写。

  • str.capitalize()

将一个字符串首字母转换我大写。

  • str.strip([chars])

返回去除两侧(不包括内部)指定字符串,默认是去除空格;另外还有rstrip和lstrip,分别是删除右边和左边指定字符。

  • str.index(sub[, start[, end]])

找到指定字符串首次出现的位置,[, start[, end]]表示从哪里开始和结束,可省略。

  • str.replace(old, new[, count])

替换一个字符或一个字符串,其中old表示修改前内容,new表示修改后内容,count表示要修改几个,可省略。

  • str.split(sep=None, maxsplit=-1)

用来将字符串分割成序列,可以执行最大分割多少次。

配置索引运算,可以显示执行的元素:

  • str.startswith(suffix[, start[, end]])

判断对象中是否为执行字符首部,是则为真,否则为假。

  • str.endswith(suffix[, start[, end]])

判断对象中是否为执行字符结尾,是则为真,否则为假。

  • str.join(iterable)

使用’某某’作为分隔符连接序列中的字符。

  • str.find(sub[, start[, end]])

可以在一个较长的字符串中查找子串,它返回子串所在位置的最左端索引,如果没有找到则返回-1。

  • str.translate(table)

这个方法和replace方法一样,可以替换字符串中的某些部分,但是和前者不同的是,translate方法只处理单个字符。它的优势在于可以同时进行多个替换,有些时候比replace效率高的多。

  • str.format()

格式化输出字符串。简单的说就是format里面的东西去替换前面的内容,在替换的时候,可以按某种规定来输出;format方法在Python2.6之后引入,替代了原先的%,显得更加优雅。

  • str.isalnum()

是否全为字母或数字。

  • str.isalpha()

是否为全字母。

  • str.isdigit()

是否为全数字。

  • str.islower()

是否为全小写。

  • str.isupper()

是否为全大写。

  • str.isspace()

是否为空格。

  • str.isdecimal()

是否为小数。

还有很多方法,如: center()、decode()、encode()、rindex()、rsplit()等。

三、join方法使用

下面再来看看join方法的一些高级用法,非常实用。比如把一个列表处理成字符串。

join可以连接一个可迭代对象,当列表中都是字符时可以直接处理。但是如果一个可迭代对象中有不是字符类型的对象时,就无法像上面那样直接处理了。所以我们可以在join内使用循环语句把对象全部通过str()函数处理成字符串。

如果我在把列表处理成字符串时需要把每个对象都加上引号,早join中可以这么处理,如下代码:

是不是很完美。

在复杂一点,如果需要对应列表中的对象,列表中是什么类型,在处理成字符串时还变成什么类型。如下:

就是在join中先循环,再判断。

基本意思就是,循环list,得出变量v。如果v是str或者unicode就加上分号,如果不是这两种类型就直接显示即可。

如果不知道这么做有什么用的话?可以把MySQL查询结果输出为INSERT语句,就可以用到上面的join知识了。当然,使用循环也可以做。

两种方式的效果是一样的。

四、enumerate和zip

将字符串作为参数传入 enumerate() 和 zip() 函数,生成相应的enumerate型的对象和zip型的对象,然后我们在通过循环将这些对象按照我们的需要输出即可。比如:

这样的函数能为我们提供更加便捷的处理数据的方法。比如enumerate可以得到元素索引位置,那么我们就可以利用enumerate来做排序了。


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (1)or分享 (0)
关于作者:

您必须 登录 才能发表评论!