gpt4 book ai didi

python - 如何从唯一列表和 Counter 对象创建计数列表?

转载 作者:行者123 更新时间:2023-12-01 05:21:05 24 4
gpt4 key购买 nike

我有一个 Counter() 对象,它可以统计字符串列表的出现次数。我有一个独特的字符串列表。我需要从计数器中生成一个计数列表,然后将零添加到计数为 0 的其他字符串实例中。

我可以按照以下方式进行操作,但是我可以以更高效/Pythonic 的方式实现相同的 z 列表吗?

from collections import Counter
x = Counter(['abc','def','abc'])
uniq = sorted(set(['abc', 'def', 'abc', 'abc', 'ghi', 'jkl','jkl']))
z = [x[i] for i in uniq]

输出

>>> z
[2, 1, 0, 0]
>>> uniq
['abc', 'def', 'ghi', 'jkl']

其实最终的目的是得到一个np.array(z)np.array(uniq)

最佳答案

我想您可以使用Counterupdate方法将0添加到唯一列表中的所有键

>>> from collections import Counter
>>> x = Counter(['abc','def','abc'])
>>> y = ['abc', 'def', 'abc', 'abc', 'ghi', 'jkl','jkl']
>>> x.update(dict.fromkeys(y, 0))

这样 x 现在包含您想要的键和值。

或者,如果你想避免构建中间dict,则稍长一些:

>>> from collections import Counter
>>> x = Counter(['abc','def','abc'])
>>> y = ['abc', 'def', 'abc', 'abc', 'ghi', 'jkl','jkl']
>>> for k in y:
x[k] += 0

关于python - 如何从唯一列表和 Counter 对象创建计数列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com