【发布时间】:2017-08-27 22:06:15
【问题描述】:
如果 Counter 对象的键类型为str,即:
我可以这样做:
>>> vocab_counter = Counter("the lazy fox jumps over the brown dog".split())
>>> vocab_counter = Counter({k+u"\uE000":v for k,v in vocab_counter.items()})
>>> vocab_counter
Counter({'brown\ue000': 1,
'dog\ue000': 1,
'fox\ue000': 1,
'jumps\ue000': 1,
'lazy\ue000': 1,
'over\ue000': 1,
'the\ue000': 2})
将字符添加到所有键的快速和/或 Python 方法是什么?
上述方法是实现将字符附加到所有键的最终计数器的唯一方法吗?是否有其他方法可以实现相同的目标?
【问题讨论】:
-
我认为您的做法似乎还不错...您期待什么样的改进?用的时间?代码行数?
-
不是几行代码,就是想知道有没有更好的办法。多次遍历所有键并不是最优的。也许我必须将其转储到数据帧或 numpy 数组中,然后将其读回计数器。
-
我不认为这会更好......那样会涉及创建拆分字符串列表,操作其中的每一个,然后计算它们。它目前的下降方式只涉及每个独特的单词 - 所以如果计算一本小说,它会更加干净和高效(无论如何我认为)我要做的唯一改变是在你的最后一步创建字典而不是计数器,因为您不再需要计算(我假设)
-
嗨@alvas 不知道多次,但您必须至少迭代一次才能更新。检查我的答案。它可能会对你有所帮助。
标签: python string dictionary counter key-value