J'ai une liste de personnages en 2D de cette façon:
a = [["1","2","3"],
["4","5","6"],
["7","8","9"]]
Quel est le moyen le plus pythonique d’imprimer la liste sous forme de bloc? Pas de virgules ni de crochets:
123
456
789
Réponses:
7 pour la réponse № 1Il y a beaucoup de façons. Probablement un str.join
d'une cartographie de str.join
s:
>>> a = [["1","2","3"],
... ["4","5","6"],
... ["7","8","9"]]
>>> print("n".join(map("".join, a)))
123
456
789
>>>
0 pour la réponse № 2
Comme ça:
import os
array = [["1","2","3"],
["4","5","6"],
["7","8","9"]]
print(os.linesep.join(map("".join, array)))
0 pour la réponse № 3
Si vous cherchez Pythonique alors vous avez sûrement besoin d'une compréhension du générateur:
print("n".join("".join(i) for i in array))
0 pour la réponse № 4
La meilleure façon à mon avis serait d’utiliser print
une fonction. Avec print
fonction, vous n’avez besoin d'aucun type de jointure et de conversion (si tous les objets ne sont pas des chaînes).
>>> a = [["1","2","3"],
... ["4", 5, 6], # Contains integers as well.
... ["7","8","9"]]
...
>>> for x in a:
... print(*x, sep="")
...
...
123
456
789
Si vous êtes sur Python 2, alors la fonction d’impression peut être importée en utilisant from __future__ import print_function
.