使用字符串而不是字母更新 python 中的计数器集合

新手上路,请多包涵

如何用字符串而不是字符串的字母更新计数器?例如,在用两个字符串初始化这个计数器之后:

 from collections import Counter
c = Counter(['black','blue'])

“添加”另一个字符串,例如“red”。当我使用 update() 方法时,它会添加字母“r”、“e”、“d”:

 c.update('red')
c
>>Counter({'black': 1, 'blue': 1, 'd': 1, 'e': 1, 'r': 1})

原文由 aless80 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 451
2 个回答

您可以使用字典更新它,因为添加另一个字符串与使用计数 +1 更新密钥相同:

 from collections import Counter
c = Counter(['black','blue'])

c.update({"red": 1})

c
# Counter({'black': 1, 'blue': 1, 'red': 1})

如果密钥已经存在,则计数将增加 1:

 c.update({"red": 1})

c
# Counter({'black': 1, 'blue': 1, 'red': 2})

原文由 Psidom 发布,翻译遵循 CC BY-SA 3.0 许可协议

c.update(['red'])
>>> c
Counter({'black': 1, 'blue': 1, 'red': 1})

Source 可以是可迭代对象、字典或另一个 Counter 实例。

尽管字符串是可迭代的,但结果并不是您所期望的。首先将其转换为列表、元组等。

原文由 Alexander 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏