字符串是不可变的
>>> s='test'
>>> s[0]
't'
>>> s[0]='x'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> s[::-1]
'tset'
--join
>>> lst=['my','name','is','qiz']
>>> ' '.join(lst)
'my name is qiz'
>>> ','.join(lst)
'my,name,is,qiz'
--字符串分割(split,rsplit,splitlines,partition,rpartition)
>>> s='my name is qiz'
>>> s.split()
['my', 'name', 'is', 'qiz']
>>> s.split('is')
['my name ', ' qiz']
>>> s.split(' ',1)
['my', 'name is qiz']
>>> s.split(' ',2)
['my', 'name', 'is qiz']
>>> s.split(' ',-1)
['my', 'name', 'is', 'qiz']
>>> s.rsplit(' ',1)
['my name is', 'qiz']
>>> line='url:http://test.com'
>>> line.split(':',1)
['url', 'http://test.com']
>>> key,value=line.split(':',1)
>>> lines='''i am qiz
... i am a boy
... i like python'''
>>> lines
'i am qiz\ni am a boy\ni like python'
>>> lines.splitlines()
['i am qiz', 'i am a boy', 'i like python']
>>> lines.splitlines(True)
['i am qiz\n', 'i am a boy\n', 'i like python']
>>> s.partition(' ')
('my', ' ', 'name is qiz')
>>> s.split(' ',1)
['my', 'name is qiz']
>>> line
'url:http://test.com'
>>> line.partition(':')
('url', ':', 'http://test.com')
>>> s.rpartition(' ')
('my name is', ' ', 'qiz')
>>> line.rpartition(':')
('url:http', ':', '//test.com')
>>> def partition(s,sep):
... head,tail = s.split(sep,1)
... return (head,sep,tail)
...
>>> partition(s,' ')
('my', ' ', 'name is qiz')
--大小写转换(capitalize,title,lower,upper,swapcase)
>>> s
'my name is qiz'
>>> s.capitalize()
'My name is qiz'
>>> s.title()
'My Name Is Qiz'
>>> s.upper()
'MY NAME IS QIZ'
>>> s.swapcase()
'MY NAME IS QIZ'
>>> s.swapcase().lower()
'my name is qiz'
--增加/删除填充符(center,ljust,rjust,zfill,strip,lstrip,rstrip)
>>> s.center(20)
' my name is qiz '
>>> s.center(20,'#')
'###my name is qiz###'
>>> s.ljust(20)
'my name is qiz '
>>> s.ljust(20,'*')
'my name is qiz******'
>>> s.rjust(20)
' my name is qiz'
>>> s.rjust(20,'@')
'@@@@@@my name is qiz'
>>> s.zfill(20)
'000000my name is qiz'
>>> s=' my name is qiz \n \t'
>>> s.strip()
'my name is qiz'
>>> s.lstrip()
'my name is qiz \n \t'
>>> s.rstrip()
' my name is qiz'
--字符串判断(startwith,endwith,is_*)
>>> line = 'UUID=ace162f9-1507-4073-9126-2c18cc3aba09 / xfs defaults 0 0'
>>> uuid = 'ace162f9-1507-4073-9126-2c18cc3aba09'
>>> line.startswith(uuid)
False
>>> line.startswith(uuid,5)
True
>>> line.endswith('0')
True
>>> line='123'
>>> line.isupper()
False
>>> line.islower()
False
>>> line.isdigit()
True
>>> line.isalnum()
True
>>> line.isalpha()
False
>>> line.isdecimal()
True
>>> line.isprintable()
True
>>> s='**test##'
>>> s.endswith('test',0,6)
True
--字符串查找替换(count,find,rfind,index,rindex,replace)
>>> s
'**test##'
>>> s.count('*')
2
>>> s.find('t')
2
>>> s.rfind('t')
5
>>> s.index('t')
2
>>> s.rindex('t')
5
>>> s.find('x')
-1
>>> s.index('x')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> s='abc123abc123'
>>> s.replace('abc','xyz')
'xyz123xyz123'
>>> s.replace('abc','xyz',1)
'xyz123abc123'
>>> s.replace('xxx','xyz',1)
'abc123abc123'
>>> s.replace('abc','xyz',2).replace('xyz','abc',1)
'abc123xyz123'
>>> 'abc' in s
True
>>> 'xyz' in s
False
--format
>>> '{0}-->{1}'.format('qz','zr')
'qz-->zr'
>>> '{}-->{}'.format('qz','zr')
'qz-->zr'
>>> '{0}-->{1}<--{0}'.format('qz','zr')
'qz-->zr<--qz'
>>> '{name}:{age}'.format(name='qz',age=18)
'qz:18'
| capitalize(...)
| S.capitalize() -> str
|
| Return a capitalized version of S, i.e. make the first character
| have upper case and the rest lower case.
|
| casefold(...)
| S.casefold() -> str
|
| Return a version of S suitable for caseless comparisons.
|
| center(...)
| S.center(width[, fillchar]) -> str
|
| Return S centered in a string of length width. Padding is
| done using the specified fill character (default is a space)
|
| count(...)
| S.count(sub[, start[, end]]) -> int
|
| Return the number of non-overlapping occurrences of substring sub in
| string S[start:end]. Optional arguments start and end are
| interpreted as in slice notation.
|
| encode(...)
| S.encode(encoding='utf-8', errors='strict') -> bytes
|
| Encode S using the codec registered for encoding. Default encoding
| is 'utf-8'. errors may be given to set a different error
| handling scheme. Default is 'strict' meaning that encoding errors raise
| a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and
| 'xmlcharrefreplace' as well as any other name registered with
| codecs.register_error that can handle UnicodeEncodeErrors.
|
| endswith(...)
| S.endswith(suffix[, start[, end]]) -> bool
|
| Return True if S ends with the specified suffix, False otherwise.
| With optional start, test S beginning at that position.
| With optional end, stop comparing S at that position.
| suffix can also be a tuple of strings to try.
|
| expandtabs(...)
| S.expandtabs(tabsize=8) -> str
|
| Return a copy of S where all tab characters are expanded using spaces.
| If tabsize is not given, a tab size of 8 characters is assumed.
|
| find(...)
| S.find(sub[, start[, end]]) -> int
|
| Return the lowest index in S where substring sub is found,
| such that sub is contained within S[start:end]. Optional
| arguments start and end are interpreted as in slice notation.
|
| Return -1 on failure.
|
| format(...)
| S.format(*args, **kwargs) -> str
|
| Return a formatted version of S, using substitutions from args and kwargs.
| The substitutions are identified by braces ('{' and '}').
|
| format_map(...)
| S.format_map(mapping) -> str
|
| Return a formatted version of S, using substitutions from mapping.
| The substitutions are identified by braces ('{' and '}').
|
| index(...)
| S.index(sub[, start[, end]]) -> int
|
| Like S.find() but raise ValueError when the substring is not found.
|
| isalnum(...)
| S.isalnum() -> bool
|
| Return True if all characters in S are alphanumeric
| and there is at least one character in S, False otherwise.
|
| isalpha(...)
| S.isalpha() -> bool
|
| Return True if all characters in S are alphabetic
| and there is at least one character in S, False otherwise.
|
| isdecimal(...)
| S.isdecimal() -> bool
|
| Return True if there are only decimal characters in S,
| False otherwise.
|
| isdigit(...)
| S.isdigit() -> bool
|
| Return True if all characters in S are digits
| and there is at least one character in S, False otherwise.
|
| isidentifier(...)
| S.isidentifier() -> bool
|
| Return True if S is a valid identifier according
| to the language definition.
|
| Use keyword.iskeyword() to test for reserved identifiers
| such as "def" and "class".
|
| islower(...)
| S.islower() -> bool
|
| Return True if all cased characters in S are lowercase and there is
| at least one cased character in S, False otherwise.
|
| isnumeric(...)
| S.isnumeric() -> bool
|
| Return True if there are only numeric characters in S,
| False otherwise.
|
| isprintable(...)
| S.isprintable() -> bool
|
| Return True if all characters in S are considered
| printable in repr() or S is empty, False otherwise.
|
| isspace(...)
| S.isspace() -> bool
|
| Return True if all characters in S are whitespace
| and there is at least one character in S, False otherwise.
|
| istitle(...)
| S.istitle() -> bool
|
| Return True if S is a titlecased string and there is at least one
| character in S, i.e. upper- and titlecase characters may only
| follow uncased characters and lowercase characters only cased ones.
| Return False otherwise.
|
| isupper(...)
| S.isupper() -> bool
|
| Return True if all cased characters in S are uppercase and there is
| at least one cased character in S, False otherwise.
|
| join(...)
| S.join(iterable) -> str
|
| Return a string which is the concatenation of the strings in the
| iterable. The separator between elements is S.
|
| ljust(...)
| S.ljust(width[, fillchar]) -> str
|
| Return S left-justified in a Unicode string of length width. Padding is
| done using the specified fill character (default is a space).
|
| lower(...)
| S.lower() -> str
|
| Return a copy of the string S converted to lowercase.
|
| lstrip(...)
| S.lstrip([chars]) -> str
|
| Return a copy of the string S with leading whitespace removed.
| If chars is given and not None, remove characters in chars instead.
|
| partition(...)
| S.partition(sep) -> (head, sep, tail)
|
| Search for the separator sep in S, and return the part before it,
| the separator itself, and the part after it. If the separator is not
| found, return S and two empty strings.
|
| replace(...)
| S.replace(old, new[, count]) -> str
|
| Return a copy of S with all occurrences of substring
| old replaced by new. If the optional argument count is
| given, only the first count occurrences are replaced.
|
| rfind(...)
| S.rfind(sub[, start[, end]]) -> int
|
| Return the highest index in S where substring sub is found,
| such that sub is contained within S[start:end]. Optional
| arguments start and end are interpreted as in slice notation.
|
| Return -1 on failure.
|
| rindex(...)
| S.rindex(sub[, start[, end]]) -> int
|
| Like S.rfind() but raise ValueError when the substring is not found.
|
| rjust(...)
| S.rjust(width[, fillchar]) -> str
|
| Return S right-justified in a string of length width. Padding is
| done using the specified fill character (default is a space).
|
| rpartition(...)
| S.rpartition(sep) -> (head, sep, tail)
|
| Search for the separator sep in S, starting at the end of S, and return
| the part before it, the separator itself, and the part after it. If the
| separator is not found, return two empty strings and S.
|
| rsplit(...)
| S.rsplit(sep=None, maxsplit=-1) -> list of strings
|
| Return a list of the words in S, using sep as the
| delimiter string, starting at the end of the string and
| working to the front. If maxsplit is given, at most maxsplit
| splits are done. If sep is not specified, any whitespace string
| is a separator.
|
| rstrip(...)
| S.rstrip([chars]) -> str
|
| Return a copy of the string S with trailing whitespace removed.
| If chars is given and not None, remove characters in chars instead.
|
| split(...)
| S.split(sep=None, maxsplit=-1) -> list of strings
|
| Return a list of the words in S, using sep as the
| delimiter string. If maxsplit is given, at most maxsplit
| splits are done. If sep is not specified or is None, any
| whitespace string is a separator and empty strings are
| removed from the result.
|
| splitlines(...)
| S.splitlines([keepends]) -> list of strings
|
| Return a list of the lines in S, breaking at line boundaries.
| Line breaks are not included in the resulting list unless keepends
| is given and true.
|
| startswith(...)
| S.startswith(prefix[, start[, end]]) -> bool
|
| Return True if S starts with the specified prefix, False otherwise.
| With optional start, test S beginning at that position.
| With optional end, stop comparing S at that position.
| prefix can also be a tuple of strings to try.
|
| strip(...)
| S.strip([chars]) -> str
|
| Return a copy of the string S with leading and trailing
| whitespace removed.
| If chars is given and not None, remove characters in chars instead.
|
| swapcase(...)
| S.swapcase() -> str
|
| Return a copy of S with uppercase characters converted to lowercase
| and vice versa.
|
| title(...)
| S.title() -> str
|
| Return a titlecased version of S, i.e. words start with title case
| characters, all remaining cased characters have lower case.
|
| translate(...)
| S.translate(table) -> str
|
| Return a copy of the string S in which each character has been mapped
| through the given translation table. The table must implement
| lookup/indexing via __getitem__, for instance a dictionary or list,
| mapping Unicode ordinals to Unicode ordinals, strings, or None. If
| this operation raises LookupError, the character is left untouched.
| Characters mapped to None are deleted.
|
| upper(...)
| S.upper() -> str
|
| Return a copy of S converted to uppercase.
|
| zfill(...)
| S.zfill(width) -> str
|
| Pad a numeric string S with zeros on the left, to fill a field
| of the specified width. The string S is never truncated.
来源:https://www.cnblogs.com/adba/p/5708469.html