Python PrettyTable - введите значение в столбец один раз и обновите счетчик его вхождений - PullRequest
0 голосов
/ 12 февраля 2020

Я создал симпатичную таблицу, как показано ниже:

from prettytable import PrettyTable
from datetime import datetime, timedelta, timezone

# objects
my_table = PrettyTable()
my_table.field_names = ["Permit_Type", "Count"]

permit_type_list = ["P1", "R4", "P1", "R2", "Q6", "Q6"]

def get_list_of_permissions():
        start_count = 0
        for permission in permit_type_list:
            start_count += 1
            my_table.add_row([permission, start_count])
        print(my_table)

get_list_of_permissions()

Я хочу таблицу, которая дает следующий вывод:

+--------------------------------------+-----------+
|             Permit_Type              | Count     |
+--------------------------------------+-----------+
|                 P1                   |     2     |
|                 R4                   |     1     |
|                 R2                   |     1     |
|                 Q6                   |     2     |

В данный момент мой код перечисляет Permit_Type в таблица более одного раза, если она встречается в списке более одного раза и счетчик просто увеличивается

1 Ответ

0 голосов
/ 13 февраля 2020

Я смог решить это сам :-)

from collections import Counter
from prettytable import PrettyTable

# objects
my_table = PrettyTable()
my_table.field_names = ["Permit_Type", "Count"]
def get_list_of_permissions():
    requests = []
    for permission in permit_type_list:
        requests_in_list.append(permission)
    req_count = Counter(requests_in_list)

    for key, value in req_count.most_common():
        my_table.add_row([key, value])
     print(my_table)

...