我需要在python中创建一个名为word的函数,它接受一个句子并计算单词和数字的总数。例如
words('testing 1 2 testing')
应该返回
{'testing': 2, 1: 1, 2: 1}
我目前正在使用下面的代码,但是输出将所有内容都作为字符串连数字。
from collections import Counter
def words(sentence):
return Counter(map(str, sentence.split()))
答案 0 :(得分:0)
扩展您的解决方案。只需在每次迭代中检查isdigit
并相应地执行增量。
s = 'testing 1 2 testing'
d = {}
for word in s.split():
word = int(word) if word.isdigit() else word
if word in d:
d[word] += 1
else:
d[word] = 1
将输出:
{1: 1, 2: 1, 'testing': 2}