Ich habe diesen Code bisher:
def name_counts(name_list):
name_dict = {}
for word in name_list:
if word in name_dict:
name_dict[word] += 1
else:
name_dict[word] = 1
print(name_counts(name_list))
Was zu Folgendem führt:
Aber ich brauche es, um nur die Vornamen zu drucken, nicht die letzten. Wie würde ich das machen? Ich weiß, dass ich die Split-Funktion verwenden sollte, aber jedes Mal, wenn ich name_list.split()
mache, wird ein Attributfehler zurückgegeben.
4 Antworten
Ich würde am Anfang der for
- Schleife eine temporäre Variable erstellen, die den geteilten Namen enthält, wie folgt:
for word in name_list:
name = word.split()[0]
if name in name_dict:
name_dict[name] += 1
else:
name_dict[name] = 0
Beachten Sie, dass die Funktion .split()
ein list
zurückgibt. Um den Vornamen zu erhalten, müssen Sie das Element am Index 0
abrufen.
Ich hoffe, das hilft!
Dies kann in einer einzigen Zeile mithilfe von Listenverständnis erreicht werden.
>>>from collections import Counter
>>>name_list = ["Davy Jones", "Davy Crockett", "George Washington"]
>>>Counter([name.split()[0] for name in name_list])
#result -->
Counter({'Davy': 2, 'George': 1})
Der Zähler aus dem Erfassungsmodul macht genau das! Sie können verwenden:
from collections import Counter
# get firstname from name
print(Counter(firstname))
EDIT: Ich lasse dich herausfinden, wie man den Vornamen analysiert :)
Du bist sehr nah! Was Sie gerade in Ihrer Funktion tun, ist nur den vollständigen Namen zu betrachten, während die Anweisungen besagen, dass Sie nur den Vornamen betrachten und sehen sollten, wie viel er erschien. Was Sie haben sollten, ist so etwas. Erstellen Sie beim Durchsuchen jedes Wortes in der Schleife ein Array, sagen wir name
und setzen Sie es auf word.split()
. Überprüfen Sie dann wie in Ihrem folgenden Code, ob name[0]
(der Vorname) in der Liste vorhanden ist, und erhöhen Sie name_dict[name[0]]
, falls dies der Fall ist. Wenn nicht, erstellen Sie mit name[0]
einen neuen Schlüssel und setzen Sie ihn auf 1.
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.