Habe ich eine Liste von Buchstaben und wollen in der Lage sein, um Sie anzuzeigen, vertikal etwa so:
a d
b e
c f
def main():
letters = ["a", "b", "c", "d","e", "f"]
for i in letters:
print(i)
dieser code nur anzeigen wie diese:
a
b
c
d
e
InformationsquelleAutor user3339203 | 2014-03-09
Weil Sie drucken Sie in separaten Zeilen. Obwohl Sie nicht uns genug info auf wie eigentlich, das Sie drucken möchten, kann ich daraus schließen, dass Sie wollen, dass die erste Hälfte auf die erste Spalte und die zweite Hälfte der zweiten Spalte.
Gut, das ist nicht so einfach, Sie müssen ein wenig mitdenken und erkennen, dass, wenn Sie berechnen die Hälfte der Liste und halten Sie es:
h=len(letters)//2
können Sie die Iteration mit variablemi
durch die erste Hälfte der Liste und drucken in der gleichen Zeileletters[i]
undletters[h+i]
richtig? So etwas wie dieses:Können Sie leicht verallgemeinern für Listen ohne-pair die Länge, aber das hängt wirklich davon ab, was Sie wollen, zu tun in diesem Fall.
Dass gesagt wird, die durch die Verwendung von Python geben, die Sie weiter gehen kann :). Blick auf diese code:
Dieser Ausgabe wird im folgenden in Python 3:
Was ich Tat, war form-Tupeln mit
zip
- Funktion gruppieren Sie die beiden Hälften der Liste.Der Vollständigkeit halber, wenn eines Tages deine Liste nicht ein paar Länge, die Sie verwenden können,
itertools.zip_longest
das funktioniert mehr oder weniger wiezip
aber füllt sich mit einem default-Wert, wenn beide iterables sind nicht von der gleichen Größe.Hoffe, das hilft!
der Ausgang ist dort. Hab ich was verpasst?
Gute Lösung, aber was ist, wenn er wird entscheiden, zu drucken 3 Buchstaben dann, es ist schwieriger zu ändern als code von @Christian
Ach @Christian es gelöscht für einige reasom
Dies funktioniert nur mit einer geraden Anzahl von Zeichen (das ist die original-Beispiel) Wenn Sie eine weitere hinzufügen-Zeichen ('g'), werden Sie wind-up löschen der letzten Zeichen, so dass die Ausgabe ist die gleiche wie die Gruppe der Paare, die Sie testen.
InformationsquelleAutor Paulo Bu
Werde ich nur werfen Sie in einer anderen Lösung:
Gibt auch:
InformationsquelleAutor Peter Goldsborough
Antwort Peter Goldsborough Problem hat
was über das Buchstaben-array
Ich Hinzugefügt Bedingung für es
Das gleiche problem mit Paulo Bu s Antwort.
Und hier ist meine, ich denke, mehr einfache und Universelle Lösung
Ändern kann ich Zeilen zählen-set es 2 und leicht zu bekommen, wenn ich muss
InformationsquelleAutor Daniil Grankin
Wenn das Ziel ist, geben Sie die Anzahl der SPALTEN in die Anzeige ein-Kollektionen, hier ist mein code
Beispiel
InformationsquelleAutor eyquem
Ohne Kontext für das, was Sie tun, es ist schwierig zu beantworten.
Wenn Ihre Daten müssen in Paaren, dann sollte man vielleicht das erstellen einer anders strukturierten Objekt. Ein einfaches Beispiel wäre eine Liste von Tupeln.
InformationsquelleAutor Graeme Stuart
Für eine Allgemeine Lösung, die Sie tun können, etwas in dieser Richtung:
Drucke:
Da sind wir mit zip_longest (
izip_longest
für Python 2), Sie können eine fillvalue und die seltsame Endung-Wert wird nicht abgeschnitten werden.Wenn Sie möchten, ändern Sie die Spalten, ändern Sie die Anzahl der Reihen:
Drucke:
Natürlich, es ist einfache Mathematik, um herauszufinden, die Beziehung zwischen Spalten und Zeilen, wenn Sie haben eine Liste mit X Elementen lange.
So, Wie funktioniert das?
Durch die definition einer Tabelle ist eine matrix. So erstellen Sie zunächst eine matrix
rows
lange:Dann invertieren, matrix:
Und gehen von dort aus...
InformationsquelleAutor dawg