Es gibt ein paar Möglichkeiten, dies zu erreichen, aber wenn Sie die Dinge ohne Sorgen über zusätzliche Module oder das Installieren und Importieren von externen Modulen handhaben möchten, funktioniert diese Methode "out-of-the-box".
Mit d
als Start Wörterbuch:
d = {'text1': ['A', 'C', 'E', 'F'],
'text2': ['A'],
'text3': ['C', 'D'],
'text4': ['A', 'B'],
'text5': ['A']}
ein neues dict
, erstellen letters
genannt, für Ihre Ergebnisse in leben, und füllen Sie es mit Ihren Briefen, von d.keys()
genommen, durch die Buchstabentaste gedrückt zu schaffen, wenn Es ist nicht vorhanden und erstellt eine Liste mit der Anzahl und dem Schlüssel von d
als Wert. Wenn es bereits vorhanden ist, erhöhen Sie die Anzahl und fügen Sie den aktuellen Schlüssel von d
an seine Schlüsselliste d
im Wert an.
letters = {}
for item in d.keys():
for letter in d[item]:
if letter not in letters.keys():
letters[letter] = [1,[item]]
else:
letters[letter][0] += 1
letters[letter][1] += [item]
Dies lässt Sie mit einem dict
genannt letters
enthält Werte der Zählungen und den Schlüssel aus d
, die den Buchstaben enthalten, wie folgt aus:
{'E': [1, ['text1']], 'C': [2, ['text3', 'text1']], 'F': [1, ['text1']], 'A': [4, ['text2', 'text4', 'text1', 'text5']], 'B': [1, ['text4']], 'D': [1, ['text3']]}`
nun Ihre erste Liste zu drucken, zu tun:
for letter in sorted(letters):
print(letter, letters[letter][0])
jeden Buchstaben drucken und den Inhalt des ersten oder ‚count‘ Index der Liste als Wert und die Verwendung die eingebaute sorted()
Funktion, um Dinge in Ordnung zu bringen.
die zweite zu drucken, ebenfalls sorted()
, das gleiche tun, sondern mit dem zweiten oder ‚Schlüssel‘, Index der Liste in seinem Wert, .joined
eine ,
in einen String mit:
for letter in sorted(letters):
print(letter, ', '.join(letters[letter][1]))
zu Kopieren/Einfügen, hier ist der Code von meinem Geschwafel ungebrochen:
d = {'text1': ['A', 'C', 'E', 'F'],
'text2': ['A'],
'text3': ['C', 'D'],
'text4': ['A', 'B'],
'text5': ['A']}
letters = {}
for item in d.keys():
for letter in d[item]:
if letter not in letters.keys():
letters[letter] = [1,[item]]
else:
letters[letter][0] += 1
letters[letter][1] += [item]
print(letters)
for letter in letters:
print(letter, letters[letter][0])
print()
for letter in letters:
print(letter, ', '.join(letters[letter][1]))
Hoffe, das hilft!
Werden die Listen jemals Duplikate enthalten? – 101
Wo hast du versagt? Bitte posten Sie Ihren Code, was Sie bisher versucht haben. – Eddie
Ich habe noch keine anderen Codes. Ich kann Schleifen schreiben, um die Antworten zu finden, aber ich wette, dass es einige Bibliotheken (Sammlungen?) Geben muss, um das zu tun. – user3390906