Zum Beispiel habe ich ein Array mit zwei Elementen array = ['abc', 'def']. Wie drucke ich das gesamte Array mit nur einer Funktion? wie folgt: print "%s and %s" % array Ist es möglich? Ich habe eine vordefinierte Anzahl von Elementen, also weiß ich, wie viele Elemente dort sein würden.

BEARBEITEN:

Ich mache eine SQL-Insert-Anweisung, damit es eine Reihe von Anmeldeinformationen gibt, sagen wir 7, und in meinem Beispiel würde es so aussehen:

("insert into users values(%s, \'%s\', ...);" % array)
3
jonjohnson 21 Nov. 2013 im 22:45

5 Antworten

Beste Antwort

Sie können auch tun

print '{0} and {1}'.format(arr[0],arr[1])

Oder in deinem Fall

print "insert into users values({0}, {1}, {2}, ...);".format(arr[0],arr[1],arr[2]...)

Oder

print "insert into users values({0}, {1}, {2}, ...);".format(*arr)

Glücklich? Stellen Sie sicher, dass die Länge des Arrays mit dem Index übereinstimmt.

7
pythoniku 21 Nov. 2013 im 18:59

Wenn das Eingabearray vom Integer-Typ ist, müssen Sie zuerst in das Array String-Typ konvertieren und dann die Methode join zum Verbinden durch , oder Leerzeichen verwenden irgendwas du willst. z.B:

>>> arr = [1, 2, 4, 3]
>>> print(", " . join(arr))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found
>>> sarr = [str(a) for a in arr]
>>> print(", " . join(sarr))
1, 2, 4, 3
>>>
1
krishna Prasad 6 Okt. 2016 im 07:42

Sie können str.join verwenden:

>>> array = ['abc', 'def']
>>> print " and ".join(array)
abc and def
>>> array = ['abc', 'def', 'ghi']
>>> print " and ".join(array)
abc and def and ghi
>>>

Bearbeiten:

Mein obiger Beitrag ist für Ihre ursprüngliche Frage. Unten ist für Ihre bearbeitete:

print "insert into users values({}, {}, {}, ...);".format(*array)

Beachten Sie, dass die Anzahl der {} mit der Anzahl der Elemente in array übereinstimmen muss.

2
21 Nov. 2013 im 19:00

Würde

print ' and '.join(array)

Dich zufrieden stellen?

10
rlms 21 Nov. 2013 im 22:30

Ein anderer Ansatz ist:

print(" %s %s bla bla %s ..." % (tuple(array)))

Hier benötigen Sie so viele %s Formatbezeichner wie im Array. Die Druckfunktion erfordert ein Tupel nach %, sodass Sie tuple() verwenden müssen, um das Array in ein Tupel umzuwandeln.

0
thegreenogre 12 Mai 2017 im 02:40