web-dev-qa-db-fra.com

Imprimer la liste au format table en python

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.

8
Blaise Delaney

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
7
arshajii

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. 

Usage

>>> 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

6
Priyam Singh

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é!

1
enpenax
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
0
Samuele Mattiuzzo