J'essaie d'imprimer plusieurs listes (de longueur égale) sous forme de colonnes d'un tableau.
Je lis les données d'un fichier .txt, et à la fin du code, j'ai 5 listes que je voudrais imprimer sous forme de colonnes séparées mais d'espace.
Je vais vous montrer un analogue à 3 listes:
>>> l1 = ['a', 'b', 'c']
>>> l2 = ['1', '2', '3']
>>> l3 = ['x', 'y', 'z']
>>> for row in Zip(l1, l2, l3):
... print ' '.join(row)
a 1 x
b 2 y
c 3 z
Vous pouvez utiliser mon paquet beautifultable . Il prend en charge l'ajout de données par lignes ou par colonnes ou même par le mélange des deux approches. Vous pouvez insérer, supprimer, mettre à jour n'importe quelle ligne ou colonne.
>>> from beautifultable import BeautifulTable
>>> table = BeautifulTable()
>>> table.column_headers = ["name", "rank", "gender"]
>>> table.append_row(["Jacob", 1, "boy"])
>>> table.append_row(["Isabella", 1, "girl"])
>>> table.append_row(["Ethan", 2, "boy"])
>>> table.append_row(["Sophia", 2, "girl"])
>>> table.append_row(["Michael", 3, "boy"])
>>> print(table)
+----------+------+--------+
| name | rank | gender |
+----------+------+--------+
| Jacob | 1 | boy |
+----------+------+--------+
| Isabella | 1 | girl |
+----------+------+--------+
| Ethan | 2 | boy |
+----------+------+--------+
| Sophia | 2 | girl |
+----------+------+--------+
| Michael | 3 | boy |
+----------+------+--------+
S'amuser
En supposant que vous avez une liste de listes:
for L in list_of_lists:
print " ".join(L)
La fonction str.join(iterable)
, joint les composants d’un itérable par la chaîne donnée.
Par conséquent, " ".join([1, 2, 3])
devient "1 2 3".
Au cas où j'aurais mal compris la question et que chaque list
soit supposée être une colonne:
for T in Zip(list1, list2, list3, list4, list5):
print " ".join(T)
Zip()
fusionne les listes données en une liste de tuples:
>>> Zip([1,2,3], [4,5,6], [7,8,9])
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
À votre santé!
for nested_list in big_container_list
print '\t'.join(nested_list)
\t
étant le caractère de tabulation
exemple rapide:
In [1]: a = [['1','2'],['3','4']]
In [5]: for nested_list in a:
...: print '\t'.join(nested_list)
...:
1 2
3 4