Как l oop через элемент и использовать элемент .split () для удаления двоеточий из показанного списка? - PullRequest
0 голосов
/ 11 апреля 2020
Scores = ["HW:65", "HW:75","Exam:95", "HW:90", "HW:95", "Exam:75"]

Пытался сделать все oop, но это не сработало:

for Hw in Scores:
    x = Scores.split()

вывод должен быть примерно таким: Получил 4 балла HW: 65 75 90 95 Средний балл HW: 81,25

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Во-первых, вам нужно составить список HW:

HWs = [(x.split(':')[1]) for x in Scores if "HW" in x]
# ['65', '75', '90', '95']

Потому что вы хотите распечатать весь список, присоединиться и ввести некоторую переменную

total = ','.join(HWs)

Чтобы получить среднее значение, вы должны преобразовать из строкового значения в списке в целое число. Поставить на новую переменную. Получите среднее значение с помощью функции sum () и разделите его на новое значение. Наконец, выведите

myInt = [int(x) for x in HWs]
ave = sum(myInt)/len(myInt)

Вот полный код:

Scores = ["HW:65", "HW:75","Exam:95", "HW:90", "HW:95", "Exam:75"]
HWs = [(x.split(':')[1]) for x in Scores if "HW" in x]
total = ','.join(HWs)
myInt = [int(x) for x in HWs]
ave = sum(myInt)/len(myInt)
print(f"Got {len(HWs)} HW Scores: {total} The average HW Score: {ave}")

Выход

Got 4 HW Scores: 65,75,90,95 The average HW Score: 81.25
0 голосов
/ 11 апреля 2020

Одним из решений является использование replace () и понимание списка:

x = [score.replace(':', '') for score in Scores]

Другое решение - использование метода translate () и понимание списка:

x = [score.translate({ord(i): None for i in ':'}) for score in Scores]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...