-2

我是新来的,也是 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 许可或软件,因此我无法使用该功能。

4

1 回答 1

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]]
于 2014-02-04T03:54:48.717 回答