Python List count() с использованием класса и текстового файла

Я новичок в python и у меня есть вопрос.

У меня есть 2 текстовых файла:

Первый содержит расписание программ:

------------------------------------------------------------------
Channel 1
16.00-17.45 Matinee: The kiss on the cross
17.45-17.50 The stock market today
------------------------------------------------------------------
Channel 2
8.30-9.00 The mosquito
9.00-10.00 Tip
17.50-18.20 In the company of dead masters
------------------------------------------------------------------
Channel 3
15.35-17.05 The weaker sex
17.05-18.00 The Onedine line
18.00-18.30 Children's trio: Dastardly & Mutley

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

print(program_instances)

returns for example:
Channel 1, start:16.00 end:17.45 name:Matinee: The kiss on the cross 
Channel 1, start:17.45 end:17.50 name:The stock market today 
...

Затем у меня есть еще один текстовый файл с «данными зрителя»:

File which contains data for one day collected from the TV sets included in the survey.
When the TV is switched on, it registers the time and tuned channel at fixed times every
day. Data from different devices is in the same file, but separated by dashed lines.

    Format: time/channel                
=================
19.37/2
19.52/2
21.07/1
21.22/1
21.37/1
-------
16.22/4
16.37/4
16.52/4
17.07/4
17.22/4
17.37/4
17.52/4
19.37/2
19.52/2
...

из этого файла я хочу рассчитать:

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

бывший. Я хочу иметь возможность распечатать список 10 лучших:

--------------------- top 10 ------------------- 
1. program 1: 57 times (60%)
2. program 2: 47 times(49%)
3. program 3: 34 times (36%)
...

Data was collected from #number of TV’s

У меня возникли проблемы с решением, что делать при чтении и вычислении второго файла.

Могу ли я использовать список в своем классе для добавления/добавления символа «*» каждый раз, когда у канала есть зритель? Затем используйте функцию count() для подсчета количества вхождений символа для каждого списка?

бывший:

viewers = ['*','*','*','*','*','*']

Мой класс выглядит так:

def __init__(self,channel,start, end, name, viewers, percentage):
        self.channel = channel
        self.start = start
        self.end = end
        self.name = name
        self.viewers = viewers           #mabye use a list here?
        self.percentage = percentage

Вся помощь очень ценится!

Итак, использование списка работает? Что вы пробовали и что не сработало?

Yevhen Kuzmovych 23.11.2022 12:40

Привет! @YevhenKuzmovych Я не знаю, как добавить список в класс. Добавить его внутри класса или создать отдельную функцию? Кроме того, я не уверен, как подсчитывать вхождения в текстовом файле. У каждого экземпляра есть время начала и конец. Могу ли я использовать функцию if, elif для сортировки данных? Если это возможно, как мне это сделать?

Ella 23.11.2022 12:45

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

Yevhen Kuzmovych 23.11.2022 12:48
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете создать список, который принимает этот номер канала каждый раз, когда канал включается (список выглядит так: [1,2,1,1,4,4....], затем используйте list.count(канал num) для возврата количества раз для каждого канала, поэтому вы создадите функцию, которая возвращает значение из списка и выполняет другие вычисления.

Хорошо! @Tat, но есть ли способ отслеживать, сколько TV одновременно содержится в файле?

Ella 23.11.2022 13:23

вы можете преобразовать этот массив в словарь и обратно в список. исходный список = [1,2,4,4,4,2,1], окончательный список = [1,2,4]. затем подсчитайте окончательный список, чтобы получить количество телевизоров в списке

Tat 23.11.2022 13:40

Другие вопросы по теме