2016-04-11 10 views
0

ich habe:Druck Liste von Listen in Python mit Leerzeichen getrennte Text

surfaceList = [(21, 22, 2, 4, 24), (27, 28, 7, 4, 30)] 

Ich möchte:

The vertex are 21 22 2 4 24 
The vertex are 27 28 7 4 30 

I verwendet

totalSurface = len(surfaceList) 
print " total surface = %d " % (totalSurface) 
for surfaceGenNew in range(totalSurface): 
print " The vertex are " surfaceList[surfaceGenNew] 

Fehler ist:

print " The vertex are %s" surfaceInformationVertexList[surfaceGenNew] 
^ 
Error: invalid syntax 
auch

I verwendet

foo = [(21, 22, 2, 4, 24), (27, 28, 7, 4, 30)] 
print " \n The vertex are ".join(foo) 

Fehler ist

TypeError: sequence item 0: expected string, tuple found 

ich auf die harte Art und Weise zu finden, die Länge der einzelnen Liste und dann die, wenn die Bedingung für jedes Listenelement verwenden verwenden könnte und dann das gleiche drucken, aber ich bin mir sicher, dass es einen schlauen Weg dafür geben würde.

Irgendwelche Vorschläge?

Antwort

4

Sie haben eine Liste von Tupeln. Versuchen

for s in surfaceList: 
    print("The vertex are {0}".format(" ".join(str(x) for x in s))) 
  1. Die for Schleife Sie jedes Tupel in einer eigenen Zeile drucken (es andere Wege gibt, aber ich finde das eine besser lesbar als andere).

  2. Die .join zusammen mit dem Verständnis Formate Ihr Tupel, so dass jeder Wert von einem Leerzeichen (int Werte innerhalb der Tupeln str zu konvertieren) getrennt ist. Der {0} innerhalb der Formatzeichenfolge ist ein Platzhalter, der angibt, dass er durch das erste (Index 0) -Argument des Aufrufs .format() ersetzt wird.

  3. Die .format() verknüpft den Text (der Scheitelpunkt sind ...) und die durch Leerzeichen getrennten Werte.

+0

gibt einen Fehler zu gehen: Typeerror: Sequenzitem 0: erwartete String, int gefunden –

+0

Es funktioniert gut, können Sie bitte zwei Dinge erklären? 1: wie die Abgrenzung in diesem Fall funktioniert und wie {0} funktioniert, es würde mir helfen, es in Zukunft selbst zu benutzen .. 2: wie hast du +3 so schnell bekommen :) wie ich ein -1 so schnell bekommen habe! –

+0

@HamadHassan Sicher, nur zusätzliche Informationen über die verwendeten Methoden hinzugefügt. Ich bin mir nicht ganz sicher, warum du abgelehnt wurdest, da es sich um eine gültige und unwichtige Frage handelt. – Selcuk

0

Feste Dinge in der Art und Weise Sie schrieb:

surfaceList = [(21, 22, 2, 4, 24), (27, 28, 7, 4, 30)] 
totalSurface = len(surfaceList) 

print " total surface = %d " % (totalSurface) 

for surfaceGenNew in range(totalSurface): 
    print " The vertex are " + str(surfaceList[surfaceGenNew])[1:-1].replace(",","") 

aber empfehle ich mit @ selcuk Antwort