【问题标题】:How to concatenate String count and Int如何连接字符串计数和 Int
【发布时间】:2014-03-08 05:45:30
【问题描述】:

我有一组 set 形式的字符串计数,我想将它除以一些 int 值。

例子:

 Counter({'dlr': 21, 'said': 18, 'total': 17, 'bankamerica': 13, 'bank': 11, 'analyst': 9, 'prev': 9, 'februari': 8, 'york': 8, 'would': 8, 'price': 8, 'time': 8, 'wheat': 7})

我想将它除以某个 int 值,这样我将得到 count 除以该 int 值的单词。

我收到 TypeError: cannot concatenate 'str' 和 'int' 对象。

【问题讨论】:

  • 这不是一套。这是一个collections.counter,更像是一本字典。另外,请发布出现此错误的代码

标签: python string integer


【解决方案1】:

假设你的意思是Counter = {...}:

for key in Counter.keys():
    Counter[key] /= value

【讨论】:

    【解决方案2】:

    用字典理解构建一个新的计数器:

    >>> counter = Counter({'dlr': 21, 'said': 18, 'total': 17, 'bankamerica': 13, 'bank': 11, 'analyst': 9, 'prev': 9, 'februari': 8, 'york': 8, 'would': 8, 'price': 8, 'time': 8, 'wheat': 7})
    >>> counter2 = Counter({k:v/2 for k,v in counter.items()})
    >>> counter2
    Counter({'dlr': 10, 'said': 9, 'total': 8, 'bankamerica': 6, 'bank': 5, 'would': 4, 'price': 4, 'februari': 4, 'york': 4, 'time': 4, 'prev': 4, 'analyst': 4, 'wheat': 3})
    

    如果你不想要整数除法:

    >>> from __future__ import division
    >>> counter2 = Counter({k:v/2 for k,v in counter.items()})
    >>> counter2
    Counter({'dlr': 10.5, 'said': 9.0, 'total': 8.5, 'bankamerica': 6.5, 'bank': 5.5, 'prev': 4.5, 'analyst': 4.5, 'would': 4.0, 'price': 4.0, 'februari': 4.0, 'york': 4.0, 'time': 4.0, 'wheat': 3.5})
    

    【讨论】:

    • 它给出 TypeError: 'Counter' object is not callable.
    • 您需要from collections import Counter 或只使用collections.Counter
    • 我都做了仍然给出错误。请您解释一下 Counter({k:v/2 for k,v in counter.items()}),以便我找出解决方案。我对两个反词感到困惑。
    猜你喜欢
    • 1970-01-01
    • 2011-07-07
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    相关资源
    最近更新 更多