Написать функцию, которая принимает строку и возвращает словарь: слово → количество вхождений. (2 способа)
1)
def count_words(s: str) -> dict:
arr = s.split(‘ ‘)
result = {}
for el in arr:
if el in result:
result[el] += 1
else:
result[el] = 1
return result
2)
from collections import Counter
def count_words(s: str) -> dict:
return dict(Counter(s.split()))
Чтение файла в json
import json
with open(“logs.txt”, “r”) as f:
data = json.load(f)
Есть файл logs.txt, где каждая строка — JSON:
{“user_id”: 1, “event”: “login”, “timestamp”: “2025-11-19T10:01:00”}
{“user_id”: 2, “event”: “purchase”, “timestamp”: “2025-11-19T10:02:00”}
{“user_id”: 1, “event”: “login”, “timestamp”: “2025-11-19T10:05:00”}
…
Нужно:
Посчитать количество событий каждого типа (login, purchase, …) и вывести топ-3 самых частых.
import json
from collections import Counter
def top_events(filename: str, top_n: int = 3):
counter = Counter()
with open(filename, 'r') as f:
for line in f:
if not line.strip(): # пропустить пустые строки
continue
event = json.loads(line)
event_type = event["event"]
counter[event_type] += 1
return counter.most_common(top_n)В чем разница между списком и кортежем?
Список изменяем, кортеж - нет.
Список - упорядоченый набор элементов, чаще всего одного типа.
Кортеж - структура, которая может содержать различные типы данных.
Как можно интерполировать строки?
Интерполяция - это возможность вставлять что-то в строку.
name = ‘Chris’
В чем разница между is и ==?
is - проверяет идентичность, смотрит id и сравнивает.
== проверяет равенство, смотрит значения и сравнивает.
Получить значения dict в виде кортежей (ключ, значение)
d.items()
Сортировка по значениям по убыванию dict
dict(sorted(result.items(), key=lambda x: x[1], reverse=1))
Как удалить символ в строке python
s.replace(“x”, “”)
Дан список строк. Нужно сгруппировать их так, чтобы в одной группе были только анаграммы.
Пример:
[“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
Ответ:
[[“eat”, “tea”, “ate”], [“tan”, “nat”], [“bat”]]
from collections import defaultdict result = defaultdict(list) for s in arr: result["".join(sorted(s))].append(s) for key, value in result.items(): print(value)
Как проверить наличие ключа и значения в словаре
1) Ключа
if key in d:
pass
2) Значения
if value in d.values():
pass
Пример декоратора
Это функция, которая принимает другую функцию и возвращает новую функцию с добавленным поведением.
def my_decorator(func):
def wrapper(*args, **kwargs):
# код до вызова функции
result = func(*args, **kwargs)
return result
return wrapper
@my_decorator
def hello():
print("Hello!")
Объясните функцию range
Создаёт последовательность чисел.
Часто используется в циклах for.
1) range(stop)
От 0 до stop (не включая):
range(5) # 0,1,2,3,4
2) range(start, stop)
От start до stop (не включая):
range(2, 6) # 2,3,4,5
3) range(start, stop, step)
С шагом step:
range(1, 10, 2) # 1,3,5,7,9
range(10, 0, -1) # 10,9,8,…,1
Определите класс car с двумя атрибутами: color и speed. Затем создайте экземпляр и верните speed
class Car :
def \_\_init\_\_(self, color, speed):
self.color = color
self.speed = speed
car = Car('red','100mph')
car.speeddata = [
“Alice,30,London”,
“Bob,25,Berlin”,
“Charlie,35,Paris”
]
Напиши код, который с помощью map преобразует этот список в список словарей:
[
{“name”: “Alice”, “age”: 30, “city”: “London”},
{“name”: “Bob”, “age”: 25, “city”: “Berlin”},
{“name”: “Charlie”, “age”: 35, “city”: “Paris”}
]
def get_dict(row):
res = row.split(“,”)
return {“name”: res[0], “age”: int(res[1]), “city”: res[2]}
d = list(map(get_dict, data))
Как добавить в один список элементы другого?
И в чем разница?
Добавить один элемент:
arr1.append(3)
Добавить несколько:
arr2 = [3, 4]
arr1.extend(arr2)
Создать новый список:
arr2 = arr1 + [2]
Как .split() делит по умолчанию?
Разделитель по умолчанию — любой пробельный символ.
Это может быть:
* пробел “ “
* табуляция \t
* перенос строки \n
* несколько пробелов подряд
* смесь табов и пробелов
split() воспринимает всё это как одно разделение.
Как склеить строки из списка в одну строку по разделителю?
arr = [“a”, “b”, “c”]
new_str = “ “.join(arr)
Как проверить пустой ли список?
if not arr:
print(“Пустой”)
else:
print(“Не пустой”)
Как взять любой элемент из списка?
import random
arr = [1, 2, 3, 4]
x = random.choice(arr)
print(x)
Как проверить принадлежит ли переменная типу string?
1)
if type(var) is str:
print(“YES”)
3)
if isistance(var, str):
print(“YES”)
В Python логические операции определены исключительно для булевых величин?
Нет, так тоже может быть:
print(1 and 0) # 0
Что такое распаковка в python?
** → распаковывает словари
Что такое композиция?
Это возможность объекта содержать другой объект как свой атрибут