【问题标题】:Assign value from Counter to a list将 Counter 中的值分配给列表
【发布时间】:2021-08-21 16:06:08
【问题描述】:

假设我有以下列表:

l1 = ['Hello', 'world', 'world']
l2 = ['Hello', 'world', 'world', 'apple']

对于l1,我将不同的元素计算为:

Counter(l1)

给出:

Counter({'Hello': 1, 'world': 2})

现在我想通过l2 并将上面的值分配给它,这样我得到:

[1,2,2,0]

如您所见,apple 我们分配了 0,因为计数器中没有它的值。我想知道我该怎么做?

【问题讨论】:

    标签: python list counter


    【解决方案1】:

    您可以像这样使用列表推导式。

    from collections import Counter
    
    l1 = ['Hello', 'world', 'world']
    l2 = ['Hello', 'world', 'world', 'apple']
    
    c1 = Counter(l1)
    
    res = [c1[i] for i in l2]
    print(res)
    

    输出

    [1, 2, 2, 0]
    

    旧解决方案(之前user2357112的评论支持莫妮卡)

    res = [c1.get(i, 0) for i in l2]
    

    【讨论】:

    • 没有意义使用get - Counter 索引已经这样工作了。
    • 我不知道这个,谢谢,将编辑该部分
    猜你喜欢
    • 2021-08-02
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2018-08-20
    • 1970-01-01
    相关资源
    最近更新 更多