我不明白为什么它不构成基本的单词计数应用程序。我知道它不是理想的设置,为了避免重复计数,它会不断删除单词,但我只是不明白为什么它不正确:
import string
text = input(">>").lower()
words = text.split()
table = str.maketrans('', '', string.punctuation)
stripped = [w.translate(table) for w in words]
print(stripped[:100])
count = {}
for s in stripped:
counter = 0
for t in stripped:
if t == s:
counter += 1
del stripped[stripped.index(t)]
count[s] = counter
print(count)
例如输入一些培根ipsum即可
['bacon', 'ipsum', 'dolor', 'amet', 'shankle', 'pancetta', 'meatball', 'ribeye', 'tail', 'buffalo', 'jerky', 'frankfurter', 'prosciutto', 'spare', 'ribs', 'rump', 'boudin', 'capicola', 'strip', 'steak', 'shank', 'turducken', 'buffalo', 'drumstick', 'sirloin', 'spare', 'ribs', 'alcatra', 'porchetta', 'tenderloin', 'bresaola', 'ground', 'round', 'chuck', 'tbone', 'strip', 'steak', 'buffalo', 'pork', 'tongue', 'short', 'ribs', 'short', 'loin', 'kielbasa', 'brisket', 'shoulder', 'pastrami']
但是,它被处理成这样:
{'bacon': 1, 'dolor': 1, 'shankle': 1, 'meatball': 1, 'tail': 1, 'jerky': 1, 'prosciutto': 1, 'ribs': 3, 'boudin': 1, 'strip': 2, 'shank': 1, 'buffalo': 3, 'spare': 2, 'tenderloin': 1, 'ground': 1, 'chuck': 1, 'steak': 2, 'short': 1, 'loin': 1, 'brisket': 1, 'pastrami': 1}
谢谢!它最有可能正盯着我。