Static methods in Python?

Yep, using the staticmethod decorator: class MyClass(object): @staticmethod def the_static_method(x): print(x) MyClass.the_static_method(2) # outputs 2 Note that some code might use the old method of defining a static method, using staticmethod as a function rather than a decorator. This should only be used if you have to support ancient versions of Python (2.2 and 2.3): … Read more

How do I pad a string with zeroes?

To pad strings: >>> n = ‘4’ >>> print(n.zfill(3)) 004 To pad numbers: >>> n = 4 >>> print(f'{n:03}’) # Preferred method, python >= 3.6 004 >>> print(‘%03d’ % n) 004 >>> print(format(n, ’03’)) # python >= 2.6 004 >>> print(‘{0:03d}’.format(n)) # python >= 2.6 + python 3 004 >>> print(‘{foo:03d}’.format(foo=n)) # python >= 2.6 … Read more

How do I remove a trailing newline?

Try the method rstrip() (see doc Python 2 and Python 3) >>> ‘test string\n’.rstrip() ‘test string’ Python’s rstrip() method strips all kinds of trailing whitespace by default, not just one newline as Perl does with chomp. >>> ‘test string \n \r\n\n\r \n\n’.rstrip() ‘test string’ To strip only newlines: >>> ‘test string \n \r\n\n\r \n\n’.rstrip(‘\n’) ‘test … Read more

Delete an element from a dictionary

The del statement removes an element: del d[key] Note that this mutates the existing dictionary, so the contents of the dictionary changes for anybody else who has a reference to the same instance. To return a new dictionary, make a copy of the dictionary: def removekey(d, key): r = dict(d) del r[key] return r The … Read more

Why is it string.join(list) instead of list.join(string)?

It’s because any iterable can be joined (e.g, list, tuple, dict, set), but its contents and the “joiner” must be strings. For example: ‘_’.join([‘welcome’, ‘to’, ‘stack’, ‘overflow’]) ‘_’.join((‘welcome’, ‘to’, ‘stack’, ‘overflow’)) ‘welcome_to_stack_overflow’ Using something other than strings will raise the following error: TypeError: sequence item 0: expected str instance, int found