我是新来的,也是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许可证或软件,所以我无法访问使用该功能。
答案 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]]