J'utilise cette fonction simple:façon Pythonic pour imprimer une table
def print_players(players):
tot = 1
for p in players:
print '%2d: %15s \t (%d|%d) \t was: %s' % (tot, p['nick'], p['x'], p['y'], p['oldnick'])
tot += 1
et je ne sont pseudos en supposant plus de 15 caractères.
Je voudrais garder chaque "colonne" alignée, y a-t-il un peu de sucre syntaxique me permettant de faire la même chose mais en gardant la colonne des pseudonymes alignée à gauche au lieu de droite, sans casser la colonne à droite?
L'équivalent, plus laid, le code serait:
def print_players(players):
tot = 1
for p in players:
print '%2d: %s \t (%d|%d) \t was: %s' % (tot, p['nick']+' '*(15-len(p['nick'])), p['x'], p['y'], p['oldnick'])
tot += 1
Merci à tous, voici la version finale:
def print_players(players):
for tot, p in enumerate(players, start=1):
print '%2d:'%tot, '%(nick)-12s (%(x)d|%(y)d) \t was %(oldnick)s'%p
Que signifie «** values»? J'ai vu '**' seulement dans la déclaration des paramètres (déclaration d'une fonction/méthode). –
@Andrea: il transmet les paires clé/valeur d'un dictionnaire sous la forme d'une série d'arguments nommés à une fonction. Donc, si 'd = {'a': 1, 'b': 2}', alors 'f (** d)' est équivalent à 'f (a = 1, b = 1)'. – Stephan202
Je ne le savais pas, merci beaucoup! –