Ich versuche also, dieses Programm zu erstellen, das den Benutzer zur Eingabe auffordert und die Werte in einem Array / einer Liste speichert.
Wenn dann eine leere Zeile eingegeben wird, wird dem Benutzer mitgeteilt, wie viele dieser Werte eindeutig sind.
Ich baue dies aus Gründen des wirklichen Lebens und nicht als Problem.
enter: happy
enter: rofl
enter: happy
enter: mpg8
enter: Cpp
enter: Cpp
enter:
There are 4 unique words!
Mein Code lautet wie folgt:
# ask for input
ipta = raw_input("Word: ")
# create list
uniquewords = []
counter = 0
uniquewords.append(ipta)
a = 0 # loop thingy
# while loop to ask for input and append in list
while ipta:
ipta = raw_input("Word: ")
new_words.append(input1)
counter = counter + 1
for p in uniquewords:
..und das ist ungefähr alles, was ich bisher bekommen habe.
Ich bin nicht sicher, wie ich die eindeutige Anzahl von Wörtern in einer Liste zählen soll.
Wenn jemand die Lösung posten kann, damit ich daraus lernen kann, oder mir zumindest zeigen kann, wie großartig sie wäre, danke!
Antworten:
Verwenden Sie außerdem collection.Counter, um Ihren Code umzugestalten:
Ausgabe:
quelle
Counter(words).values()
ist nett. Wir gehen davon aus, dass die Anzahl in der Reihenfolge des ersten Auftretens der Wortliste liegt. Ich meine, ich gehe davon aus, dass die Zählung uns die Zählung von a, dann b, dann c, dann d gibt ...Sie können eine Menge verwenden , um Duplikate zu entfernen, und dann die len- Funktion, um die Elemente in der Menge zu zählen:
quelle
values, counts = np.unique(words, return_counts=True)
quelle
Verwenden Sie ein Set :
Damit ausgestattet, könnte Ihre Lösung so einfach sein wie:
quelle
quelle
Für ndarray gibt es eine Numpy-Methode namens unique :
Beispiele:
Für eine Serie gibt es einen Funktionsaufruf value_counts () :
quelle
quelle
Obwohl ein Satz der einfachste Weg ist, können Sie auch ein Diktat verwenden und
some_dict.has(key)
ein Wörterbuch nur mit eindeutigen Schlüsseln und Werten füllen.Angenommen, Sie haben bereits
words[]
Eingaben des Benutzers vorgenommen, erstellen Sie ein Diktat, das die eindeutigen Wörter in der Liste einer Zahl zuordnet:quelle
Andere Methode mit Pandas
Sie können dann Ergebnisse in ein beliebiges Format exportieren
quelle
Folgendes sollte funktionieren. Die Lambda-Funktion filtert die duplizierten Wörter heraus.
quelle
Ich würde selbst ein Set verwenden, aber hier ist noch ein anderer Weg:
quelle
quelle