|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 caodouhao 于 2017-7-26 18:48 编辑
字符串:各种奇葩的内置方法
或许现在又回过头来谈字符串,有些朋友可能会觉得没必要,也有些朋友会觉得不就是字符串嘛,哥倒着都能写出来。
其实关于字符串,还有很多你可能不知道的秘密,由于字符串在日常使用中是如此常见,因此小甲鱼抱着负责任的态度在这节课上,把所知道的都倒出来跟大家分享一下,大家交流翻炒一下。
切片操作(分片操作):
- >>> str1 = "abcdefghjkl"
- >>> str1[:6]
- 'abcdef'
- >>>
复制代码
访问字符串:
- >>> str1 = "abcdefghjkl"
- >>> str1[6]
- 'g'
- >>>
复制代码
修改字符串:
- >>> str1 = "abcdefghjkl"
- >>> str2 = str1[:6] + "11" + str1[6:]
- >>> str2
- 'abcdef11ghjkl'
- >>>
复制代码
比较操作符:
逻辑操作符:
成员操作符:
列表和元组都有他们的方法,大家可能觉得列表的方法已经非常多了,其实字符串更多呢,而且很多都挺莫名其妙的,这里就给大家谈谈出各种奇葩的字符串的方法。
capitalize()
把字符串的第一个字符改为大写
- >>> str1 = "abcdefg"
- >>> str1.capitalize ()
- 'Abcdefg'
- >>>
复制代码 casefold()
把整个字符串的所有字符改为小写
- >>> str2 = "ABCD"
- >>> str2.casefold()
- 'abcd'
- >>>
复制代码 center(width)
将字符串居中,并使用空格填充至长度 width 的新字符串
- >>> str2
- 'ABCD'
- >>> str2.center(23)
- ' ABCD '
- >>>
复制代码 count(sub[, start[, end]])
返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。
- >>> str2 = "aabbccddeeffgg"
- >>> str2.count("c")
- 2
- >>>
复制代码 endswith(sub[, start[, end]])
检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。
- >>> str1 = "abcdefg"
- >>> str1.endswith("a")
- False
- >>> str1.endswith("g")
- True
- >>>
复制代码 expandtabs([tabsize=8])
把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。
- >>> str1 = "a\tb\tc\td\te"
- >>> str1.expandtabs()
- 'a b c d e'
- >>>
复制代码 find(sub[, start[, end]])
检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。
- >>> str1 = "abcdefg"
- >>> str1.find("c")
- 2
- >>>
复制代码 index(sub[, start[, end]])
跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。
- >>> str1 = "abcdefg"
- >>> str1.index("h")
- Traceback (most recent call last):
- File "<pyshell#114>", line 1, in <module>
- str1.index("h")
- ValueError: substring not found
- >>>
复制代码
isalnum()
如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。
- >>> str1 = "abcdefg123"
- >>> str1.isalnum()
- True
- >>>
复制代码
isalpha()
如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。
- >>> str1 = "abcdefg123"
- >>> str1.isalpha()
- False
- >>>
复制代码
isdecimal()
如果字符串只包含十进制数字则返回 True,否则返回 False。
- >>> str1 = "abcdefg123"
- >>> str1.isdecimal()
- False
- >>>
复制代码
isdigit()
如果字符串只包含数字则返回 True,否则返回 False。
- >>> str1 = "abcdefg123"
- >>> str1.isdigit()
- False
- >>> str2 = "123456"
- >>> str2.isdigit()
- True
- >>>
复制代码
islower()
如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。
- >>> str3 = "abcdef"
- >>> str3.islower()
- True
- >>> str4 = "小甲鱼"
- >>> str4.islower()
- False
- >>>
复制代码
isnumeric()
如果字符串中只包含数字字符,则返回 True,否则返回 False。
- >>> str3 = "1234556"
- >>> str3.isnumeric()
- True
- >>>
复制代码
isspace()
如果字符串中只包含空格,则返回 True,否则返回 False。
- >>> str2= " "
- >>> str2.isspace()
- True
- >>>
复制代码
istitle()
如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。
- >>> str1 = "Hello"
- >>> str1.istitle()
- True
- >>>
复制代码
isupper()
如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。
- >>> str1="ABCD"
- >>> str1.isupper()
- True
- >>>
复制代码
join(sub)
以字符串作为分隔符,插入到 sub 中所有的字符之间。
- >>> str1 = "abcdefg"
- >>> str1.join("123456")
- '1abcdefg2abcdefg3abcdefg4abcdefg5abcdefg6'
- >>>
复制代码
ljust(width)
返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。
- >>> str1 = "abcdefg"
- >>> str1.join("123456")
- '1abcdefg2abcdefg3abcdefg4abcdefg5abcdefg6'
- >>> str1.ljust(10)
- 'abcdefg '
- >>>
复制代码
lower()
转换字符串中所有大写字符为小写。
- >>> str1 = "ABcd"
- >>> str1.lower()
- 'abcd'
- >>>
复制代码
lstrip()去掉字符串左边的所有空格
- >>> str1 = " 前面有3个空格"
- >>> str1.lstrip()
- '前面有3个空格'
- >>>
复制代码
partition(sub)
找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 ('原字符串', '', '')
- >>> str1 = "abcdefg"
- >>> str1.partition("d")
- ('abc', 'd', 'efg')
- >>>
复制代码
replace(old, new[, count])
把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。
- >>> str1 = "abcdefg"
- >>> str1.replace("d","1")
- 'abc1efg'
复制代码
rfind(sub[, start[, end]])
类似于 find() 方法,不过是从右边开始查找。
rindex(sub[, start[, end]])
类似于 index() 方法,不过是从右边开始。
rstrip()
删除字符串末尾的空格。
- >>> str1 = "后面有3个空格 "
- >>> str1.rstrip()
- '后面有3个空格'
- >>>
复制代码
split(sep=None, maxsplit=-1)
不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。
- >>> str1 = "a b c d e f"
- >>> str1.split()
- ['a', 'b', 'c', 'd', 'e', 'f']
- >>>
复制代码- >>> str1 = "abcdefg"
- >>> str1.split("d")
- ['abc', 'efg']
- >>>
复制代码
splitlines(([keepends]))
按照 '\n' 分隔,返回一个包含各行作为元素的列表,如果 keepends 参数指定,则返回前 keepends 行。
- >>> str1
- 'aa\nbb\ncc\nAABBCC'
- >>> str1.splitlines()
- ['aa', 'bb', 'cc', 'AABBCC']
复制代码- >>> str1 = "aa\nbb\ncc\nAABBCC"
- >>> str1.splitlines(2)
- ['aa\n', 'bb\n', 'cc\n', 'AABBCC']
复制代码
startswith(prefix[, start[, end]])
检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。
- >>> str1 = "aabbccAABBCC"
- >>> str1.startswith("a")
- True
- >>>
复制代码
strip([chars])
删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。
- >>> str1 = " aabbccd deeddccaa "
- >>> str1.strip()
- 'aabbccd deeddccaa'
复制代码
- >>> str1 = "aabbccd deeddccaa"
- >>> str1.strip("a")
- 'bbccd deeddcc'
- >>>
复制代码
swapcase()
翻转字符串中的大小写。
- >>> str1 = "aabbccAABBCC"
- >>> str1.swapcase()
- 'AABBCCaabbcc'
- >>>
复制代码
title()
返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。
- >>> str1 = "i love fishc "
- >>> str1.title()
- 'I Love Fishc '
- >>>
复制代码
translate(table)
根据 table 的规则(可以由 str.maketrans('a', 'b') 定制)转换字符串中的字符。
- >>> str1 = "aabbccAABBCC"
- >>> str1.translate(str.maketrans("b","8"))
- 'aa88ccAABBCC'
- >>>
复制代码
upper()
转换字符串中的所有小写字符为大写。
- >>> str1 = "aabbccAABBCC"
- >>> str1.upper()
- 'AABBCCAABBCC'
- >>>
复制代码
zfill(width)
返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。
- >>> str1.zfill(20)
- '00000000aabbccAABBCC'
- >>>
复制代码
capitalize()
| 把字符串的第一个字符改为大写
| casefold()
| 把整个字符串的所有字符改为小写
| center(width)
| 将字符串居中,并使用空格填充至长度 width 的新字符串
| count(sub[, start[, end]])
| 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。
| encode(encoding='utf-8', errors='strict')
| 以 encoding 指定的编码格式对字符串进行编码。
| endswith(sub[, start[, end]])
| 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。
| expandtabs([tabsize=8])
| 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。
| find(sub[, start[, end]])
| 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。
| index(sub[, start[, end]])
| 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。
| isalnum()
| 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。
| isalpha()
| 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。
| isdecimal()
| 如果字符串只包含十进制数字则返回 True,否则返回 False。
| isdigit()
| 如果字符串只包含数字则返回 True,否则返回 False。
| islower()
| 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。
| isnumeric()
| 如果字符串中只包含数字字符,则返回 True,否则返回 False。
| isspace()
| 如果字符串中只包含空格,则返回 True,否则返回 False。
| istitle()
| 如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。
| isupper()
| 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。
| join(sub)
| 以字符串作为分隔符,插入到 sub 中所有的字符之间。
| ljust(width)
| 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。
| lower()
| 转换字符串中所有大写字符为小写。
| lstrip()
| 去掉字符串左边的所有空格
| partition(sub)
| 找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 ('原字符串', '', '')
| replace(old, new[, count])
| 把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。
| rfind(sub[, start[, end]])
| 类似于 find() 方法,不过是从右边开始查找。
| rindex(sub[, start[, end]])
| 类似于 index() 方法,不过是从右边开始。
| rjust(width)
| 返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。
| rpartition(sub)
| 类似于 partition() 方法,不过是从右边开始查找。
| rstrip()
| 删除字符串末尾的空格。
| split(sep=None, maxsplit=-1)
| 不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。
| splitlines(([keepends]))
| 按照 '\n' 分隔,返回一个包含各行作为元素的列表,如果 keepends 参数指定,则返回前 keepends 行。
| startswith(prefix[, start[, end]])
| 检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。
| strip([chars])
| 删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。
| swapcase()
| 翻转字符串中的大小写。
| title()
| 返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。
| translate(table)
| 根据 table 的规则(可以由 str.maketrans('a', 'b') 定制)转换字符串中的字符。
| upper()
| 转换字符串中的所有小写字符为大写。
| zfill(width)
| 返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。 |
|
评分
-
查看全部评分
|