Python provides functions for justifying strings, enabling text padding to make aligning various strings much easier.
Below is an example of str.ljust
and str.rjust
:
interstates_lengths = {
5: (1381, 2222),
19: (63, 102),
40: (2555, 4112),
93: (189,305),
}
for road, length in interstates_lengths.items():
miles,kms = length
print('{} -> {} mi. ({} km.)'.format(str(road).rjust(4), str(miles).ljust(4), str(kms).ljust(4)))
40 -> 2555 mi. (4112 km.)
19 -> 63 mi. (102 km.)
5 -> 1381 mi. (2222 km.)
93 -> 189 mi. (305 km.)
ljust
and rjust
are very similar. Both have a width
parameter and an optional fillchar
parameter. Any string created by these functions is at least as long as the width
parameter that was passed into the function. If the string is longer than width
alread, it is not truncated. The fillchar
argument, which defaults to the space character ' '
must be a single character, not a multicharacter string.
The ljust
function pads the end of the string it is called on with the fillchar
until it is width
characters long. The rjust
function pads the beginning of the string in a similar fashion. Therefore, the l
and r
in the names of these functions refer to the side that the original string, not the fillchar
, is positioned in the output string.