字符串是不可變的python
>>> 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'git
--join
>>> lst=['my','name','is','qiz']
>>> ' '.join(lst)
'my name is qiz'
>>> ','.join(lst)
'my,name,is,qiz'api
--字符串分割(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']app
>>> s.rsplit(' ',1)
['my name is', 'qiz']less
>>> line='url:http://test.com'
>>> line.split(':',1)
['url', 'http://test.com']
>>> key,value=line.split(':',1)ide
>>> 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']ui
>>> 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')this
--大小寫轉換(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'url
--增長/刪除填充符(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'spa
--字符串判斷(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.