Python

Помогите написать Код в Python

Задание 3

Соберите среднее количество робокотов по каждому сегменту из предыдущей задачи в один список. В другом списке перечислите названия сегментов через запятую: 'Segment 0', 'Segment 1', 'Segment 2'. Затем импортируйте seaborn и вызовите функцию barplot(), передав ей список со средними показателями как x и список с названиями сегментов как y.
BI
Brat Ibragimov
150
Примеры решения задач на Python (списки, вложенные списки, срезы, sort, open, close)

https://zen.yandex.ru/media/id/5f574b183da152505e6051c5/primery-resheniia-zadach-na-python-spiski-vlojennye-spiski-srezy-sort-open-close-ch2-5fcdf8dcc26ad131b6c8b993

В статье рассматриваются решения задач, в которых отрабатываются навыки использования списков, срезов, цикла FOR in range, чтение из файла и запись в файл.

partyList = []
totalStr = 0
names = ''
inFile = open('input.txt', 'r', encoding='utf8')
for line in inFile:
....line = line.rstrip()
....if totalStr > 0 and names == '' and line != 'VOTES:':
........partyList.append([0, line])
....if line == 'VOTES:':
........names = 1
....elif names == 1:
........for i in range(len(partyList)):
............if partyList[i][1] == line:
................partyList[i][0] += 1
....totalStr += 1
inFile.close()
partyList.sort(key=lambda x: (-x[0], x[1]))
for i in range(len(partyList)):
....print(partyList[i][1])

Записываем все названия партий в список partyList, для каждой партии свой вложенный список формата ["ЧислоГолосов, НазваниеПартии]. При прохождении списка голосов для каждого голоса ищем партию и наращиваем счетчик:

............if partyList[i][1] == line:
................partyList[i][0] += 1

Всем успехов в программировании!
Никита Бондаренко
Никита Бондаренко
77 128
Лучший ответ
Ответ выше правильный)
Анатолий Ххх
Анатолий Ххх
30 358
Георгий Лайтадзе не буду спорить с мишкой фредди
Перед тем как приступать к новым задачам, внимательно изучите как решается задача, чтобы не только делать но и понимать что делаете)

Удачи в обучении)


spisok = []
spisok1 = ['Segment 0', 'Segment 1', 'Segment 2']
cats = 0
counter = 0
for index in range(len(data)):
if segment[index] == 'Segment 0':
cats += robocats[index]
counter += 1
spisok.append(cats / counter)

cats = 0
counter = 0
for index in range(len(data)):
if segment[index] == 'Segment 1':
cats += robocats[index]
counter += 1
spisok.append(cats / counter)

cats = 0
counter = 0
for index in range(len(data)):
if segment[index] == 'Segment 2':
cats += robocats[index]
counter += 1
spisok.append(cats / counter)


import seaborn
seaborn.barplot(x= spisok, y= spisok1)
Rus1K :)
Rus1K :)
9 122
Перед тем как приступать к новым задачам, внимательно изучите как решается задача, чтобы не только делать но и понимать что делаете)

Удачи в обучении)


spisok = []
spisok1 = ['Segment 0', 'Segment 1', 'Segment 2']
cats = 0
counter = 0
for index in range(len(data)):
if segment[index] == 'Segment 0':
cats += robocats[index]
counter += 1
spisok.append(cats / counter)

cats = 0
counter = 0
for index in range(len(data)):
if segment[index] == 'Segment 1':
cats += robocats[index]
counter += 1
spisok.append(cats / counter)

cats = 0
counter = 0
for index in range(len(data)):
if segment[index] == 'Segment 2':
cats += robocats[index]
counter += 1
spisok.append(cats / counter)


import seaborn
seaborn.barplot(x= spisok, y= spisok1)
Brat Ibragimov Спасибо большое, 'Знаток' супер!
Костя Милейко мне всё равно выдаёт ошибку KeyError: 'Segment 0'(( У меня изначально такая же структура кода была, я уже думала может где что-то пропускаю, здесь решила скопировать чтобы проверить, и всё равно ошибка KeyError: 'Segment 0'
Костя Милейко import pandas
import seaborn
data = pandas.read _csv('support_data.csv')
segment = list(data['segment'])
robocats = list(data['robocats'])
Мой код
sp = []
sp1 = ['Segment 0', 'Segment 1', 'Segment 2']

cats = 0
counter = 0
for a in range(len(data)):
if segment[a] == 'Segment 0':
cats += robocats[a]
counter += 1
sp.append(cats/counter)
cats = 0
counter = 0
for a in range(len(data)):
if segment[a] == 'Segment 1':
cats += robocats[a]
counter += 1
sp.append(cats/counter)

cats = 0
counter = 0
for a in range(len(data)):
if segment[a] == 'Segment 2':
cats += robocats[a]
counter += 1
sp.append(cats/counter)

seaborn.barplot(x=sp, y=sp1)
Костя Милейко Проблема начинается кода вместо print я стала средние значения добавлять в пустой список sp. Если каждое среднее выводить код работает( Отступ все соблюдаю, потому что у яндекса классный блокнот, он подсвечивает если ты не соблюдаешь отступы
Костя Милейко вот, если точнее. Пожалуйста, подскажите какую я ошибку совершаю?