马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 填充。 |
|