Python количество и список групп - PullRequest
0 голосов
/ 17 июня 2020

Это мой код:

class distClass:
    dist = -1 #distance of current point from test point
    tag = '-' #tag of current point

list =[]
obj = distClass()  # one record's distance and tag
obj.dist = 1
obj.tag = 'F'
list .append(obj)
obj2 = distClass()  # one record's distance and tag
obj2.dist = 5
obj2.tag = 'F'
list .append(obj2)
obj3 = distClass()  # one record's distance and tag
obj3.dist = 10
obj3.tag = 'M'
list .append(obj3)

в этом списке «F» существует 2 раза, а «M» - 1 раз

Мне нужно получить тег, который существует большинство

(расстояние не имеет значения), и я не знаю, что это за тег и сколько типов тегов существует

Цель состоит в том, чтобы узнать, какой тег является самым большим для списка

+--------------------+-----+
|      distance      | tag |
+--------------------+-----+
|  2.23606797749979  |  F  |
|  3.3166247903554   |  M  |
| 5.744562646538029  |  F  |
| 5.744562646538029  |  M  |
|        18.0        |  M  |
| 21.095023109728988 |  F  |
| 22.090722034374522 |  M  |
| 23.08679276123039  |  M  |
| 39.02563260217571  |  M  |
+--------------------+-----+ 

1 Ответ

1 голос
/ 17 июня 2020

Это было написано до каких-либо серьезных изменений в исходном вопросе. Когда вопрос был просто: «Мне нужно подсчитать, сколько раз встречается x.tag.

from collections import Counter

class distClass:
    def __init__(self, dist=-1, tag='-'):
        self.dist = dist #distance of current point from test point
        self.tag = tag #tag of current point

my_list = []
my_list.append(distClass(1, 'F')) # one record's distance and tag
my_list.append(distClass(5, 'F')) # one record's distance and tag
my_list.append(distClass(10, 'M')) # one record's distance and tag

counts = Counter([o.tag for o in my_list])
print(counts.most_common(2))

Это должно подсчитать различные вхождения элементов вашего списка .tag. А затем перейти к печати двух наиболее распространенных единицы.

Я также нашел время, чтобы немного упростить код, так как кажется, что вы не работаете с отдельными переменными obj2 et c, проще, если вы просто сохраните их в list, и если вам никогда не понадобится доступ к экземпляру, просто выполните my_list[1]. И я переместил значения по умолчанию distClass в функцию-конструктор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...