en
Feedback
Python: задачки и вопросы

Python: задачки и вопросы

Open in Telegram

Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media

Show more
7 125
Subscribers
No data24 hours
+67 days
No data30 days
Posts Archive
Что выведет код?
Anonymous voting

#размяться
#размяться

Мы всегда можем индексировать по строкам и столбцам внутри строк с использованием нормальных операций индексации:
M = [[1, 2, 3], 
     [4, 5, 6], 
     [7, 8, 9]]

М[1] # [4, 5, 6]

М[1][2] # 6 (Строка 2, элемент 3)
Cписковые включения являются мощным инструментом для обработки таких структур, потому что они автоматически просматривают строки и столбцы. Скажем, хотя такая структура хранит матрицы по строкам, для сбора значений второго столбца мы можем просто проходить по строкам и извлекать желаемый столбец или проходить по позициям в строках с индексаций в ходе дела:
[row[1] for row in M] # [2, 5, 8]

Что выведет код?
Anonymous voting

#размяться
#размяться

Это списковое включение комбинирует четные числа от 0 до 4 с нечетными числами от 0 до 4, поскольку range() генерирует ряд чисел, НЕ ВКЛЮЧАЯ 5. Конструкции if отфильтровывают элементы на каждой итерации. Вот эквивалентный код на основе операторов:
res == []
for х in range(5) :
    if x % 2 == 0:
        for у in range(5) :
            if у % 2 == 1:
                res.append(x, y)

res # [(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]

Что выведет код?
Anonymous voting

#размяться
#размяться

Списковые включения Их простейшая форма предусматривает указание накапливающего выражения и одиночной конструкции for:
[ выражение for цель in итерируемый_объект ]
Несмотря на необязательность всех остальных частей, они позволяют выражать более развитые итерации — в списковом включении допускается записывать любое количество вложенных циклов for, каждое из которых может иметь необязательную ассоциированную проверку if, действующую в качестве фильтра. Общая структура списковых включений выглядит следующим образом:
[ выражение for цель1 in итерируемый_объект1 if условие1
for цель2 in итерируемый_объект2 if условие2 . . .
for цельN in итерируемый_объектN if условиеN ]
Когда конструкции for вкладываются внутри спискового включения, они работают подобно эквивалентным вложенным операторам цикла for:
res = [х + у for х in [0, 1, 2] for у in [100, 200, 300]]
res # [100, 200, 300, 101, 201, 301, 102, 202, 302]
Эффект будет таким же, как у показанного ниже существенно более многословного эквивалента:
res = []
for x in [0, 1, 2]:
    for у in [100, 200, 300]:
        res.append(x + y)

print(res) # [100, 200, 300, 101, 201, 301, 102, 202, 302]

Что выведет код?
Anonymous voting

#размяться
#размяться

Встроенная функция ord() в Python возвращает целочисленную кодовую точку одиночного символа:
ord('s') # 115
mар() передает каждый элемент итерируемого объекта некой функции и собирает все результаты. Однако при передаче функции в качестве аргумента map() скобки опускаются, потому код выше вызовет ошибку: Ниже приведен пример верного синтаксиса:
counters = [1, 2, 3, 4]
def inc(x): return х + 10 # Прибавим каждому элементу 10
list(map(inc, counters)) # [11, 12, 13, 14]

Что выведет код?
Anonymous voting

#ловушка
#ловушка

Какой из методов pandas удалит записи с пропусками? #размяться
Anonymous voting

functools.reduce(функция, итерируемый_объект, [исходное_значение, ]/)
reduce() применяет функцию к итерируемому_объекту, и возвращает одиночный результат. Она разрешает также передавать необязательный третий аргумент исходное_значение, который фактически помещается перед элементами последовательности и служит начальным значением, а также стандартным результатом, когда последовательность пуста.
from functools import reduce

# Суммируем элементы списка
reduce((lambda x, у: х + у) , [1, 2, 3, 4]) # 10
но
from functools import reduce

reduce((lambda x, у: х + у) , [1, 2, 3, 4], 1) # 11

Что выведет код выше?
Anonymous voting

#ловушка
#ловушка

— Функция pow(x, y) возвращает x, возведённое в степень y. — map(function, iterable1, iterable2) применяет заданную функцию (в данном случае pow()) к элементам двух (или более) итерируемых объектов (в данном случае списков [1, 2, 3] и [2, 3, 4]). map(pow, [1, 2, 3], [2, 3, 4]) выполнит следующее: 1. pow(1, 2) возвращает 1^2 = 1 2. pow(2, 3) возвращает 2^3 = 8 3. pow(3, 4) возвращает 3^4 = 81. Затем, когда мы оборачиваем это в list(), то получаем полный список:
>>> list(map(pow, [1, 2, 3], [2, 3, 4])) # 1 ** 2, 2 ** 3, 3 ** 4
... [1, 8, 81]

Что выведет код?
Anonymous voting

Python: задачки и вопросы - Statistics & analytics of Telegram channel @quiz_python