2014-02-04 2 views
-2

Я новичок здесь и новичок в Python. Я хотел бы задать вопрос о вычислении частоты для нескольких комбинаций переменных в Python.Как подсчитать частоту множественной комбинации значений в Python

У меня есть список из списка, который выглядит, как это, например:

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

и я хочу питон подсчитать частоту для всех комбинации в этом списке, и результат будет выглядеть следующим образом:

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

Есть ли какой-либо возможный способ для Python, или есть какой-либо модуль python, который поддерживает нечто подобное к тому, что? Я нашел функцию в модуле Arcpy, которая, как мне кажется, похожа на то, что я хочу сделать здесь, но у меня нет лицензии или программного обеспечения ArcGIS, поэтому я не могу получить доступ к этой функции.

+0

'collections.Counter' может рассчитывать кортежи. Просто пересчитайте кортежи. – roippi

+0

Возможно, мне нужно больше узнать о различиях между кортежем и списком, не имея в настоящее время хорошего понимания этих двух типов файлов. Спасибо, roippi. – user3268302

ответ

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]] 
+0

Могу ли я знать, почему это было проголосовано? – Chandan

+0

Хорошо работает для меня, спасибо Чандан. – user3268302

Смежные вопросы