So drucken Sie Elemente in einer Liste in neuen Zeilen?
Habe ich eine Liste
L = Counter(mywords)
Wo
mywords = ['Well', 'Jim', 'opportunity', 'I', 'Governor', 'University', 'Denver', 'hospitality', 'There', 'lot', 'points', 'I', 'make', 'tonight', 'important', '20', 'years', 'ago', 'I', 'luckiest', 'man', 'earth', 'Michelle', 'agreed', 'marry', '(Laughter)', 'And', 'I', 'Sweetie', 'happy']
Es ist viel mehr als das, aber das ist ein snippet.
Nun, was ich als Nächstes tun ist:
print ("\n".join(c.most_common(10)))
Weil ich es will, zeigen die 10 am häufigsten verwendeten Wörter in dieser Liste UND Ihren zählt, aber ich will es ausdrucken, in neue Linien für jedes Element in der Liste, stattdessen bekomme ich diesen Fehler:
TypeError: sequence item 0: expected str instance, tuple found
Jede Hilfe würde geschätzt, mit Python 3.
InformationsquelleAutor Goose | 2012-10-23
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten mehr Kontrolle über das format, die Sie verwenden können, ein format-string wie dieser
('I', 4)\n('man', 1)\n
, ist sicherlich nicht das, was er eigentlich will.Tatsächlich, getestet habe ich es und es funktioniert Prima. Können Sie erklären, was die map-Funktion genau macht? Ich bin sehr neu in Python.
huh? Was ist falsch mit der Allgemeinen form?
Allgemeiner als was? "Ich will es zeigen die 10 am häufigsten verwendeten Wörter in dieser Liste." Ausdruck (Wort, Anzahl) - Paaren für die Worte, ist nicht eine Allgemeine Antwort, es ist die Antwort auf ein anderes problem.
Auch, Sie sollten wirklich gelehrt werden neue Python-Benutzer compehensions, nicht anzeigen. Siehe stackoverflow.com/questions/1247486/... für eine lange Diskussion, aber die kurze version ist: wie ändern Sie die
map
rufen Sie zurückx[0]
stattstr(x)
?InformationsquelleAutor John La Rooy
Die einfachste ist:
+1: Dies ist die einfachste. Nur weil jemand fast schrieb eine unleserliche Zeile code, der funktioniert, bedeutet nicht, dass es zu beheben ist die einfachste. Im Gegenteil, dass unleserliche Zeile der code nicht wartbar und daher sollte über Bord geworfen werden und umgeschrieben in eine wartbare form (DH, die ein Jon angeboten hat.)
InformationsquelleAutor Jon Clements
Wenn Sie wollen einfach nur die Saiten:
Wenn Sie möchten, dass die strings und die Anzahl der gedruckten form
('foo', 11)
:Wenn Sie möchten, dass die Saiten und zählt in einigen anderen format Ihrer Wahl an:
Warum? Die
most_common
Funktion gibt(element, count)
Paare. Diese Dinge sind Tupel, keine Zeichenfolgen. Sie können nicht nur join-Tupeln zusammen. Sie können, natürlich, es in einen string konvertieren (option #2 oben), aber das funktioniert nur, wenn Sie wirklich wollen, das format('foo', 11)
für jede Zeile. Um die beiden anderen Optionen, die Sie ignorieren möchten die Hälfte der Tupel und verwenden Sie die anderen, oder schreiben Sie Ihre eigenen format-Ausdruck.In jedem Fall, Sie möchten etwas tun, um jedes Mitglied der Sequenz zurückgegeben
most_common
. Die Pythonic Weg zu tun, mit einer Liste Verständnis-oder generator-Ausdruck.In der Zwischenzeit sollten Sie lernen, wie Sie zum Debuggen diese Arten von Fällen. Wenn
join
gibt Ihnen eineTypeError
, brechen Sie in Stücke, bis Sie diejenige gefunden haben, die Filialen zu arbeiten (und versuchen es mit 2 statt 10, nur so gibt es weniger zu Lesen):Aha! Jedes Ding in der Liste ist ein Tupel von zwei Dingen, nicht nur ein string. Warum?
OK, also es gibt die häufigsten Elemente und Ihren zählt. Ich will nur die Elemente. Also:
Nun, das ist etwas, das ich beitreten kann:
Und ich brauche nicht beide Klammern und Eltern (ich kann nur einen Ausdruck verwenden statt einer Liste Verständnis):
Und jetzt kann ich es ausdrucken:
Und jetzt, dass es funktioniert, drucken Sie alle 10:
Ich habe bearbeitet meine Antwort. Aber in diesem Fall ist die zweite version von gnibbler Antwort (das ist, andere als zur Benennung von Variablen, identisch mit der Dritten version von mir) schon gab, was man will.
InformationsquelleAutor abarnert
Ich bin überrascht, dass niemand hat vorgeschlagen, das Auspacken Betreiber
*
, da du sagst Python ist3 warum also nicht die folgenden, können Sie testen Sie es hier zu.Fragen
InformationsquelleAutor Juan Cortés