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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
| str.partition(sep) 从左向右开始匹配进行切割,以sep作为分隔符,返回 (head, sep, tail),返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
如果查找不到sep,则返回(str,'','')
str.rpartition(sep) 从右向左开始匹配进行切割,以sep作为分隔符,返回 (head, sep, tail);
如果查找不到sep,则返回('','',str)
>>> c1='abcdcba'
>>> c1.partition('a') # 第1个字符就是a,所以head=''
('', 'a', 'bcdcba')
>>> c1.rpartition('a') # 从右向左匹配,第1个字符就是a,所以tail=''
('abcdcb', 'a', '')
>>> c1.partition('b')
('a', 'b', 'cdcba')
>>> c1.rpartition('b')
('abcdc', 'b', 'a')
>>> c1.partition('c')
('ab', 'c', 'dcba')
>>> c1.rpartition('c')
('abcd', 'c', 'ba')
>>> c1.partition('x') # 查找不到字符x,返回两个空的''
('abcdcba', '', '')
>>> c1.rpartition('x')
('', '', 'abcdcba')
str.join(seq) 使用字符串str将可迭代序列seq连接起来形成一个新的字符串
>>> str = "-";
>>> seq = ("a", "b", "c");
>>> str.join(seq)
'a-b-c'
>>> c3
'AAAA'
>>> "_".join(c3)
'A_A_A_A'
>>> str1='###'
>>> c3
'AAAA'
>>> str1.join(c3)
'A###A###A###A'
>>> str2="_*_"
>>> str2
'_*_'
>>> str2.join(c3)
'A_*_A_*_A_*_A'
>>> ';'.join(str1)
'#;#;#'
# 将列表中每个元素使用_下划线连接起来
>>> li = ['alex','eric','rain']
>>> li
['alex', 'eric', 'rain']
>>> '_'.join(li)
'alex_eric_rain'
str.strip([chars]) 移除字符串str两端的字符(默认是whitespace,空格或tab键)
如果指定字符串chars,则移除字符串str两端带有chars含有的字符的所有字符
# 定义5个字符串
>>> str1=' abc '
>>> str1
' abc '
>>> str2='\t abc \t'
>>> str2
'\t abc \t'
>>> str3='\t abc \t'
>>> str3
'\t abc \t'
>>> str4='000abcde000'
>>> str4
'000abcde000'
>>> str5='000 abc 000'
>>> str5
'000 abc 000'
# 以默认方式移除两端字符
>>> str1.strip()
'abc'
>>> str2.strip()
'abc'
>>> str3.strip()
'abc'
>>> str4.strip()
'000abcde000'
>>> str5.strip()
'000 abc 000'
# 指定chars为字符'0',仅移除两端的字符'0'
>>> str1.strip('0')
' abc '
>>> str2.strip('0')
'\t abc \t'
>>> str3.strip('0')
'\t abc \t'
>>> str4.strip('0')
'abcde'
>>> str5.strip('0')
' abc '
# 指定chars为字符'0'和' '空格,
# 需要移除两端的字符'0'和空格,但此时的'\t'tab键不会被移除
>>> str1.strip('0 ')
'abc'
>>> str2.strip('0 ')
'\t abc \t'
>>> str3.strip('0 ')
'\t abc \t'
>>> str4.strip('0 ')
'abcde'
>>> str5.strip('0 ')
'abc'
# 指定chars为字符'0'和' '空格以及'\t'tab键,
# 需要移除两端的字符'0'和空格,且'\t'tab键也会被移除
>>> str1.strip('0 \t')
'abc'
>>> str2.strip('0 \t')
'abc'
>>> str3.strip('0 \t')
'abc'
>>> str4.strip('0 \t')
'abcde'
>>> str5.strip('0 \t')
'abc'
str.lstrip([chars]) 移除左侧的字符串,规格与str.strip()类似,但仅移除左侧的字符串
>>> str1.lstrip()
'abc '
>>> str2.lstrip()
'abc \t'
>>> str3.lstrip()
'abc \t'
>>> str4.lstrip()
'000abcde000'
>>> str5.lstrip()
'000 abc 000'
>>> str1.lstrip('0')
' abc '
>>> str2.lstrip('0')
'\t abc \t'
>>> str3.lstrip('0')
'\t abc \t'
>>> str4.lstrip('0')
'abcde000'
>>> str5.lstrip('0')
' abc 000'
>>> str1.lstrip('0 ')
'abc '
>>> str2.lstrip('0 ')
'\t abc \t'
>>> str3.lstrip('0 ')
'\t abc \t'
>>> str4.lstrip('0 ')
'abcde000'
>>> str5.lstrip('0 ')
'abc 000'
str.rstrip([chars]) 移除右侧的字符串,规格与str.strip()类似,但仅移除右侧的字符串
str.split(sep=None, maxsplit=-1) 以分隔符sep对str字符串进行分隔,最多分隔maxsplit次
若不指定分隔符sep,则默认以whitespace(空格,换行\n,制表符\t)为分隔符;
若不指定最多分隔次数maxsplit,则全部分隔
>>> str1='0a\t b\tcb a0'
>>> str1
'0a\t b\tcb a0'
>>> str1.split()
['0a', 'b', 'cb', 'a0']
>>> str1.split(None,2)
['0a', 'b', 'cb a0']
>>> str1.split(None,1)
['0a', 'b\tcb a0']
>>> str1.split(None,0)
['0a\t b\tcb a0']
>>> str1.split(None,3)
['0a', 'b', 'cb', 'a0']
>>> str1.split('0')
['', 'a\t b\tcb a', '']
>>> str1.split('0',1)
['', 'a\t b\tcb a0']
>>> str1.split('0',2)
['', 'a\t b\tcb a', '']
>>> str1.split('a')
['0', '\t b\tcb ', '0']
>>> str1.split('b')
['0a\t ', '\tc', ' a0']
str.rsplit(sep=None, maxsplit=-1) 以分隔符sep对str字符串从结尾处进行分隔,最多分隔maxsplit次
若不指定分隔符sep,则默认以whitespace(空格,换行\n,制表符\t)为分隔符;
若不指定最多分隔次数maxsplit,则全部分隔
>>> str1.rsplit()
['0a', 'b', 'cb', 'a0']
>>> str1.rsplit('0')
['', 'a\t b\tcb a', '']
>>> str1.rsplit('0',1)
['0a\t b\tcb a', '']
>>> str1.rsplit('a',1)
['0a\t b\tcb ', '0']
>>> str1.split('a',1)
['0', '\t b\tcb a0']
>>> str1.split('b',1)
['0a\t ', '\tcb a0']
>>> str1.rsplit('b',1)
['0a\t b\tc', ' a0']
str.splitlines([keepends]) Python splitlines() 按照行('\r', '\r\n', \n')分隔,
返回一个包含各行作为元素的列表,
如果参数 keepends 为 False,不包含换行符;
如果为 True,则保留换行符。
>>> str2='a\n\rb\nc\rd\r\ne'
>>> str2
'a\n\rb\nc\rd\r\ne'
>>> str2.split()
['a', 'b', 'c', 'd', 'e']
>>> str2.splitlines()
['a', '', 'b', 'c', 'd', 'e']
>>> str2.splitlines(True)
['a\n', '\r', 'b\n', 'c\r', 'd\r\n', 'e']
|