links = ["/rubric/astronomy",
"/rubric/physics",
"/rubric/biology",
"/theme/bookshelf",
"/theme/Courses",
"/news/2022/02/03/argas-brumpti",
"/news/2022/02/02/violent-video-games",
"/news/2022/02/02/CART-10years",
"/news/2022/02/02/cruise-sf",
"/news/2022/02/02/ba2-russia",
"/news/2022/02/02/Schwinger-monopoles",
"/news/2022/02/02/hydrohalogenation-chain-walking",
"/material/2022/01/21/tonga",
"/blog/2022/02/01/lower-than-zero",
"/blog/2022/01/28/covid-symptoms",
"/news/2022/02/01/immunomagnetic-sorting",
"/news/2022/02/01/second-earth-trojan"]
a. Выберите из списка первую, третью и последнюю ссылку и выведите их на экран.
b. Используя список links
, создайте новый список news
со ссылками на новости, то есть только с теми ссылками, которые содержат слово news
. Сколько элементов в полученном списке?
c. Приведённые в списке links
ссылки – относительные, они ссылаются на страницу в пределах некоторой папки на сервере, но не позволяют пользователю её открыть. Создайте новый список full
с абсолютными ссылками, доклеив к каждому элементу списка links
ссылку на сам сайт https://nplus1.ru
. Проверьте, что все ссылки рабочие.
# a
print(links[0], links[2], links[-1])
/rubric/astronomy /rubric/biology /news/2022/02/01/second-earth-trojan
# b
news = []
for link in links:
if "news" in link:
news.append(link)
print(news)
['/news/2022/02/03/argas-brumpti', '/news/2022/02/02/violent-video-games', '/news/2022/02/02/CART-10years', '/news/2022/02/02/cruise-sf', '/news/2022/02/02/ba2-russia', '/news/2022/02/02/Schwinger-monopoles', '/news/2022/02/02/hydrohalogenation-chain-walking', '/news/2022/02/01/immunomagnetic-sorting', '/news/2022/02/01/second-earth-trojan']
# c
full = []
for link in links:
new = "https://nplus1.ru" + link
full.append(new)
print(full)
['https://nplus1.ru/rubric/astronomy', 'https://nplus1.ru/rubric/physics', 'https://nplus1.ru/rubric/biology', 'https://nplus1.ru/theme/bookshelf', 'https://nplus1.ru/theme/Courses', 'https://nplus1.ru/news/2022/02/03/argas-brumpti', 'https://nplus1.ru/news/2022/02/02/violent-video-games', 'https://nplus1.ru/news/2022/02/02/CART-10years', 'https://nplus1.ru/news/2022/02/02/cruise-sf', 'https://nplus1.ru/news/2022/02/02/ba2-russia', 'https://nplus1.ru/news/2022/02/02/Schwinger-monopoles', 'https://nplus1.ru/news/2022/02/02/hydrohalogenation-chain-walking', 'https://nplus1.ru/material/2022/01/21/tonga', 'https://nplus1.ru/blog/2022/02/01/lower-than-zero', 'https://nplus1.ru/blog/2022/01/28/covid-symptoms', 'https://nplus1.ru/news/2022/02/01/immunomagnetic-sorting', 'https://nplus1.ru/news/2022/02/01/second-earth-trojan']
# выводим в кликабельном виде (внутри Jupyter)
for i in full:
print(i)
https://nplus1.ru/rubric/astronomy https://nplus1.ru/rubric/physics https://nplus1.ru/rubric/biology https://nplus1.ru/theme/bookshelf https://nplus1.ru/theme/Courses https://nplus1.ru/news/2022/02/03/argas-brumpti https://nplus1.ru/news/2022/02/02/violent-video-games https://nplus1.ru/news/2022/02/02/CART-10years https://nplus1.ru/news/2022/02/02/cruise-sf https://nplus1.ru/news/2022/02/02/ba2-russia https://nplus1.ru/news/2022/02/02/Schwinger-monopoles https://nplus1.ru/news/2022/02/02/hydrohalogenation-chain-walking https://nplus1.ru/material/2022/01/21/tonga https://nplus1.ru/blog/2022/02/01/lower-than-zero https://nplus1.ru/blog/2022/01/28/covid-symptoms https://nplus1.ru/news/2022/02/01/immunomagnetic-sorting https://nplus1.ru/news/2022/02/01/second-earth-trojan
В списке L
сохранены короткие тексты с датой в начале и именем автора в конце:
L = ["""02/02/2022 Исследователи провели эксперимент при участии
группы студентов и обнаружили долгосрочное снижение эмпатии
у часто играющих в жестокие видеоигры людей и кратковременное
уменьшение эмоциональной реакции на болезненные изображения
после 40 минут игры у тех, кто ранее не играл в жестокие игры. Автор: Алиса Родина""",
"""
03/02/2022 Африканские клещи Argas brumpti могут дожить до 27 лет — к такому
выводу пришел американский исследователь Джулиан Шеперд, который
держит этих членистоногих в лаборатории с 1976 года. По его словам,
ни один другой вид клещей не может похвастать таким долголетием. Автор: Сергей Коленов
""",
"""
02/02/2022 Американская компания Cruise запустит в Сан-Франциско сервис
полностью беспилотного такси. Компания начала сбор заявок от людей,
не работающих в компании, и рассказала, что поначалу он будет бесплатным
и сможет возить пассажиров лишь ночью — с 11 часов вечера до 5 часов утра. Автор: Григорий Копиев
"""]
Создайте три новых списка:
список authors
, который содержит только авторов текстов;
список dates
, который содержит даты;
список texts
, который содержит сами тексты.
authors = []
dates = []
texts = []
for text in L:
date = text.split()[0]
author = " ".join(text.split()[-2:])
news = " ".join(text.split()[1:-2])
authors.append(author)
dates.append(date)
texts.append(news)
Дан список словарей, содержащий характеристики постов со стены сообщества ВКонтакте:
L = [{'id': 53050,
'text': 'В рамках проекта «Социальный лифт» Вышка предоставляет льготы при поступлении абитуриентам, оказавшимся в сложных жизненных обстоятельствах и социально-экономических условиях. В 2019 году льготу получил 71 человек, а в этом году университет готов оказать поддержку уже 165 абитуриентам.\n\nМы поговорили с ребятами, поступившими по программе, и делимся их историями в новом видео.\n\nПодробнее об условиях участия, сроках и количестве мест можно прочитать по ссылке: r.hse.ru/lift',
'likes': {'count': 56, 'user_likes': 0, 'can_like': 1, 'can_publish': 1},
'views': {'count': 14370}},
{'id': 53163,
'text': 'Даже в самом загруженном расписании стоит оставить немного места для заботы о себе. «Вышка для своих» делится мартовской подборкой мероприятий [club6222726|Центра психологического консультирования ВШЭ]: от хатха-йоги до групповых кинопросмотров',
'likes': {'count': 6, 'user_likes': 0, 'can_like': 1, 'can_publish': 1},
'views': {'count': 2460}},
{'id': 53161,
'text': 'Начался прием заявок на соискание премии HSE Alumni Awards. 19 марта стартует открытое онлайн-голосование, которое определит шорт-листы по каждой номинации. Лауреатами премии могут стать выпускники всех кампусов Вышки.\n\nЗаявки принимаются до 15 марта на сайте премии: bit.ly/2TzuxXn',
'likes': {'count': 4, 'user_likes': 0, 'can_like': 1, 'can_publish': 1},
'views': {'count': 2144}},
{'id': 53159,
'text': 'Вышка заняла первое место среди российских вузов по десяти предметам в рейтинге QS World University Rankings by Faculty & Subject 2020. Всего университет представлен в 19 предметных рейтингах, а по пяти из них входит в топ-100 глобального списка.\n\nВ этом году ВШЭ также присутствует в 4 из 5 отраслей QS, в том числе впервые в «Естественных науках»',
'likes': {'count': 90, 'user_likes': 0, 'can_like': 1, 'can_publish': 1},
'views': {'count': 7136}},
{'id': 53136,
'text': 'Почему изучать космос сложно, но интересно, для чего нужно наблюдать за геокороной Земли и как вернуть престиж профессии учёного? Рассказывает преподаватель факультета физики ВШЭ Игорь Балюкин, победитель конкурса ИКИ РАН в номинации «Лучшая работа, выполненная молодыми учеными»',
'likes': {'count': 15, 'user_likes': 0, 'can_like': 1, 'can_publish': 1},
'views': {'count': 4255}},
{'id': 53133,
'text': 'В феврале и начале марта сотрудники Вышки провели заключительный этап олимпиады [club154631231|«Я — профессионал»] по восьми направлениям. В соревнованиях приняли участие более 1600 студентов из 65 регионов и 212 вузов',
'likes': {'count': 4, 'user_likes': 0, 'can_like': 1, 'can_publish': 1},
'views': {'count': 3266}},
{'id': 53132,
'text': 'В первый день весны на краешке Москвы прошёл зимний спортивный фестиваль [club35314658|HSE SNOW FEST], в котором приняли участие 460 человек. Горячий чай с блинами, квесты, соревнования по горным лыжам и сноуборду ждали студентов, преподавателей и выпускников Вышки',
'likes': {'count': 76, 'user_likes': 0, 'can_like': 1, 'can_publish': 1},
'views': {'count': 6847}},
{'id': 53130,
'text': 'Команда [club24893373|МИЭФ] и сборная Вышки заняли первое и второе места на российском этапе «инвестиционной олимпиады» CFA Institute Research Challenge. В апреле студенты отправятся на европейский финал в Иорданию, а в случае успеха — в Нью-Йорк на глобальный финал конкурса',
'likes': {'count': 23, 'user_likes': 0, 'can_like': 1, 'can_publish': 1},
'views': {'count': 4376}}]
a. Выберите второй элемент списка, извлеките из него id поста, текст поста, число просмотров и лайков, а затем сохраните полученные значения в отдельные переменные id
, text
, views
и likes
.
b. Напишите функцию get_info()
, которая принимает на вход id поста, а возвращает список следующих его характеристик: текст поста, число просмотров, число лайков.
# a
id_ = L[1]["id"]
text = L[1]["text"]
views = L[1]["views"]["count"]
likes = L[1]["likes"]["count"]