def adjoin(space, *lists, **kwargs):
 strlen = kwargs.pop('strlen', len)
 justfunc = kwargs.pop('justfunc', justify)
 out_lines = []
 newLists = []
 lengths = [(max(map(strlen, x)) + space) for x in lists[:(-1)]]
 lengths.append(max(map(len, lists[(-1)])))
 maxLen = max(map(len, lists))
 for (i, lst) in enumerate(lists):
  nl = justfunc(lst, lengths[i], mode='left')
  nl.extend(([(' ' * lengths[i])] * (maxLen - len(lst))))
  newLists.append(nl)
 toJoin = zip(*newLists)
 for lines in toJoin:
  out_lines.append(_join_unicode(lines))
 return _join_unicode(out_lines, sep='\n')

def adjoin ( space , * lists , ** kwargs ) : strlen = kwargs . pop ( 'strlen' , len ) justfunc = kwargs . pop ( 'justfunc' , justify ) out_lines = [ ] newLists = [ ] lengths = [ ( max ( map ( strlen , x ) ) + space ) for x in lists [ : ( - 1 ) ] ] lengths . append ( max ( map ( len , lists [ ( - 1 ) ] ) ) ) maxLen = max ( map ( len , lists ) ) for ( i , lst ) in enumerate ( lists ) : nl = justfunc ( lst , lengths [ i ] , mode = 'left' ) nl . extend ( ( [ ( ' ' * lengths [ i ] ) ] * ( maxLen - len ( lst ) ) ) ) newLists . append ( nl ) toJoin = zip ( * newLists ) for lines in toJoin : out_lines . append ( _join_unicode ( lines ) ) return _join_unicode ( out_lines , sep = '\n' )
glues together two sets of strings using the amount of space requested .