Methods (and functions)
Links
character
Returns a one-character string whose ASCII code is the parameter (this is the
inverse of ord):
>>> chr(65)
'A'
Note: To create Unicode strings, use unichr.
endswith
See notes on startswith below…
find
Note: Don’t forget in…
Return the lowest index in the string where substring sub is found, such that sub is contained in the range [start, end). Optional arguments start and end are interpreted as in slice notation. Return -1 if sub is not found:
if s.find('--') != -1:
find(sub[,start[,end]])
format
New
Cookbook - Align (replace s with d for an integer):
In [2]: print '[{:10s}]'.format('pat')
[pat ]
In [4]: print '[{:>10s}]'.format('pat')
[ pat]
In [5]: print '[{:^10s}]'.format('pat')
[ pat ]
Cookbook - Numbers:
>>> '{:.2f}'.format(1.3)
'1.30'
>>> '{:10.2f}'.format(1.3)
' 1.30'
Cookbook - Padding:
'{:.2%}'.format(vat_rate)
In [1]: 'invoice-{:06d}.pdf'.format(12)
Out[1]: 'invoice-000012.pdf'
Old
>>> print "Today's stock price: %.2f" % 50.4625
50.46
>>> print '[%10s]' % 'Pat'
[ Pat]
>>> print '[%-10s]' % 'Pat'
[Pat ]
>>> print '[%06i]' % 3
[000003]
Note: Do NOT use a list for a string formatting operation. It will
not work!
is
isdigit
isdigit returns true if all characters in s are digit
characters:
s.isdigit()
isinstance (type)
To check if an object is a string:
if isinstance(value, basestring):
Note: Using this method probably indicates a problem with the design of your code!!
join
','.join(['abc', 'def'])
Not sure if the following works in python 3:
>>> name = ('Patrick', 'Gerald', 'Kimber')
>>> import string
>>> string.join(name)
'Patrick Gerald Kimber'
For this function, we can join multiple data types by converting them to
strings using map:
>>> ','.join(map(str, ('a', 'b', 'c', 99)))
'a,b,c,99'
lower
s = name.lower()
Padding
Justify:
>>> 'and'.ljust(10) + 'the'.ljust(10) + ']'
'and the ]'
>>> '[' + 'and'.rjust(10) + ']'
'[ and]'
>>> '[' + 'and'.rjust(10, '*') + ']'
'[*******and]'
Note:
Does not truncate the string if it is longer.
jython 2.1 does not accept the second parameter (the padding character).
partition
Split the string at the first occurrence of sep, and return a 3-tuple
containing the part before the separator, the separator itself, and the part
after the separator. If the separator is not found, return a 3-tuple
containing the string itself, followed by two empty strings:
>>> ('http://www.python.org').partition('://')
('http', '://', 'www.python.org')
>>> y
'parent:'
>>> x = y.partition(":")[2]
>>> x
"
Note:
New in version 2.5.
rpartition(sep)also returns a 3-tuple but starts searching from the end of the string; the “r” stands for reverse.
replace
>>> 'alison'.replace('a', 'x')
'xlison'
Slicing
s[0:30]
Title
>>> "hello world".title()
'Hello World'
Translate
Remove punctuation:
>>> import string
>>> x = 'A-B & C'
>>> x.translate(str.maketrans('', '', string.punctuation))
'AB C'
Note
If there is a third argument to translate, it must be a string,
whose characters will be mapped to None in the result.
Trim Strip
>>> ' spacious '.strip()
'spacious'
replace
Return a copy of the string with all occurrences of substring old replaced
by new. If the optional third argument count is given, only the first
count occurrences are replaced:
>>> print '***'.replace('*', '+++ ')
+++ +++ +++
split
>>> '1 2 3'.split()
['1', '2', '3']
>>> 'a, b, c'.split(',')
['a', ' b', ' c']
Note:
See notes on
partition(above) andsplitlines(below).If the separator is not specified or is
None, runs of consecutive whitespace are regarded as a single separator.
splitlines
Return a list of the lines in the string, breaking at line boundaries. Line
breaks are not included in the resulting list unless keepends is given
and true:
result = message.splitlines()
startswith
if s.startswith('y'):
pass
Note: Starting with version 2.5, the startswith() and endswith()
methods of string types now accept tuples of strings to check for:
return filename.endswith(('.gif', '.jpg', '.tiff'))