2009-05-22 17 views
6

Wie gehe ich in Python 2.2 nur mit integrierten Modulen vor?Liste der Listen in begrenzte Zeichenfolge konvertieren

Ich habe eine Liste von Listen wie folgt aus:
[[ 'Hund', 1], [ 'cat', 2, 'a'] [ 'Ratte', 3, 4], [ 'Fledermaus' , 5]]

Und daraus würde ich gerne eine String-Darstellung einer Tabelle wie folgt erstellen, wobei die Spalten durch Tabulatoren und die Zeilen durch Zeilenumbrüche getrennt sind.

dog 1 
cat 2 a 
rat 3 4 
bat 5 

dh
'Hund \ t1 \ ncat \ t2 \ ta \ nrat \ t 3 \ t 4 \ NBAT \ t5'

Antwort

19

Wie dies vielleicht:

lists = [['dog', 1], ['cat', 2, 'a'], ['rat', 3, 4], ['bat', 5]] 
result = "\n".join("\t".join(map(str,l)) for l in lists) 

Dieses verbindet alle Die inneren Listen verwenden Registerkarten und verketten die resultierende Liste von Zeichenfolgen mithilfe von Zeilenumbrüchen.

Es verwendet eine Funktion namens list comprehension, um die äußere Liste zu verarbeiten.

+0

Sie müssen die Ints in Zeichenfolgen konvertieren, bevor Sie ihnen beitreten. – Dave

+0

Sie müssen sicherstellen, dass jedes Element in der Variablen 'lists' eine Zeichenfolge ist, aber ansonsten ist das Code-Snippet äußerst prägnant und aussagekräftig. Ich sollte wirklich mehr Zeit mit Python verbringen .... –

+0

Sie können auch die zweite Zeile ändern in: result = '\ n'.join (' \ t'.join (str (el) für el in list) für die Liste in Listen) – mipadi

4
# rows contains the list of lists 
lines = [] 
for row in rows: 
    lines.append('\t'.join(map(str, row))) 
result = '\n'.join(lines) 
+0

+1 zu halten es einfach und leicht lesbar – nosklo

Verwandte Themen