Python:填充一大串字符串出现

时间:2014-07-09 15:53:33

标签: python numpy

我有一个字符串列表:

['1 12 4', '2 2 3', '23 32 1', ...]

我需要列出每个潜在组合的出现次数:

[0, 3, 1, ...] 

其中第一个元素是'1 1 1',第二个'1 1 2',第三个'1 1 3'等等。现在如果我有5个数字字符串的列表,范围从1-100,即['1 2 100 32 99',...],那意味着100与5的幂的潜在组合,这是一个相当大的列表,特别是当大多数值为零时。

在Python中实现此功能的最有效方法是什么?我想到的最明显的方法是拥有所有组合并迭代每个组合并使用原始列表中的count来填充事件列表,但我确信有更好的方法。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,你想计算出5个数字字符串的出现次数吗?算一算吧? Counter类构建一个唯一值的字典,并从列表中计算它们的出现次数:

>>> from collections import Counter
>>> s=['1 12 4', '2 2 3', '23 32 1','1 12 4']
>>> Counter(s)
Counter({'1 12 4': 2, '2 2 3': 1, '23 32 1': 1})