如果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})


将字符添加到所有键的快速和/或Pythonic方法是什么?

以上方法是唯一获得将所有字符都附加到字符的最终计数器的方法吗?还有其他方法可以实现相同的目标吗?

最佳答案

更好的方法是在创建计数器对象之前添加该字符。您可以使用Counter中的生成器表达式来实现:

In [15]: vocab_counter = Counter(w + u"\uE000" for w in "the lazy fox jumps over the brown dog".split())

In [16]: vocab_counter
Out[16]: Counter({'the\ue000': 2, 'fox\ue000': 1, 'dog\ue000': 1, 'jumps\ue000': 1, 'lazy\ue000': 1, 'over\ue000': 1, 'brown\ue000': 1})


如果在创建Counter之前无法修改单词,则可以覆盖Counter对象以添加特殊字符during setting the values for keys

08-24 19:42