如何计算Python中多个值组合的频率

时间:2014-02-04 03:30:14

标签: python frequency-analysis

我是新来的,也是Python的新手。我想问一个关于在Python中计算多个变量组合的频率的问题。

我有一个列表,例如:

[[A,A,A],[A,B,C],[A,A,A],[A,B,B],[A,B,C]]

我希望python计算该列表中所有组合的频率,结果将如下所示:

[[A,A,A,2],[A,B,C,2],[A,B,B,1]]

在Python中有没有可能的方法来做到这一点,或者是否有任何支持类似的东西的python模块?我在Arcpy模块中找到了一个功能,我认为这与我想要做的相似,但我没有任何ArcGIS许可证或软件,所以我无法访问使用该功能。

1 个答案:

答案 0 :(得分:3)

不使用其他库:

listOfItems = [['A','A','A'],['A','B','C'],['A','A','A'],['A','B','B'],['A','B','C']]
setOfItems = []
newListOfItems = []
for item in listOfItems:
    if item in setOfItems:
        continue
    setOfItems.append(item)
    temp = list(item)
    occurence = listOfItems.count(item)
    temp.append(occurence)
    newListOfItems.append(temp)

print newListOfItems

结果是:

   >>> print newListOfItems
   [['A', 'A', 'A', 2], ['A', 'B', 'C', 2], ['A', 'B', 'B', 1]]