Я новичок в 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
Вся помощь очень ценится!
Привет! @YevhenKuzmovych Я не знаю, как добавить список в класс. Добавить его внутри класса или создать отдельную функцию? Кроме того, я не уверен, как подсчитывать вхождения в текстовом файле. У каждого экземпляра есть время начала и конец. Могу ли я использовать функцию if, elif для сортировки данных? Если это возможно, как мне это сделать?
Это несколько вопросов. Попробуйте изучить каждый из них. Я бы посоветовал начать с некоторых руководств по основам Python.
Вы можете создать список, который принимает этот номер канала каждый раз, когда канал включается (список выглядит так: [1,2,1,1,4,4....], затем используйте list.count(канал num) для возврата количества раз для каждого канала, поэтому вы создадите функцию, которая возвращает значение из списка и выполняет другие вычисления.
Хорошо! @Tat, но есть ли способ отслеживать, сколько TV одновременно содержится в файле?
вы можете преобразовать этот массив в словарь и обратно в список. исходный список = [1,2,4,4,4,2,1], окончательный список = [1,2,4]. затем подсчитайте окончательный список, чтобы получить количество телевизоров в списке
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
Итак, использование списка работает? Что вы пробовали и что не сработало?