Skip to content

Instantly share code, notes, and snippets.

@d0uji
Last active July 7, 2018 06:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save d0uji/541844a59acdb19048aaca318d830cac to your computer and use it in GitHub Desktop.
Save d0uji/541844a59acdb19048aaca318d830cac to your computer and use it in GitHub Desktop.
# -*- encoding: cp1251 -*-
from functools import reduce
# 1.2
L = list(map(int, input("Введите список L:\n").split()))
T = [x for x in L[1::2] if not x % 3] # L[1::2] берём с первой позиции и ч/з два(нечётные позиции) и если остаток от деления на 3 равен 0
print("T:", *T) # звёздочка превращает "массив" в список аргументов, т.е. если T = [1, 2], то print("T:", 1, 2)
L = list(map(int, input("Введите список L:\n").split()))
x = int(input("Введите элемент: "))
# L = [(x, elem) if elem % 10 == 7 else (elem,) for elem in L] # альтернативный способ
# L = [elem for t in L for elem in t]
# верхние два коммента удали, чтобы не палиться, просто я сначала так сделал, а потом переделал через reduce
# короче, reduce аккумулирует результат в переменной "a", первый аргумент - это лямбда функция(анонимная функция)
# если остаток от деления на 10 = 7, т.е. последняя цифра равна 7, то добавляешь к результату x и текущий элемент, иначе просто элемент
L = reduce(lambda a, elem: a + [x, elem] if elem % 10 == 7 else a + [elem], L, [])
print("L:", *L)
# 3.2
L = list(map(int, input("Введите список L:\n").split()))
max_elem = max(L) # максимальное значение списка
L = filter(lambda a: a != max_elem, L) # фильтруем список, в лямбде проверка равен ли очередной элемент максимальному
print(*L)
# 4.2
T = tuple(map(float, input("Введите кортеж:\n").split()))
L = list(sorted(T, reverse=True)) # сортировка в порядке убывания
print(*L)
# 5.2
T = tuple(map(int, input("Введите кортеж:\n").split()))
min_idx = T.index(max(T)) # индекс максимального элемента
max_idx = T.index(min(T)) # индекс минимального элемента
L = []
if min_idx < max_idx:
L = T[min_idx+1:max_idx] # берём от минимального до максимального
elif min_idx > max_idx:
L = T[max_idx+1:min_idx] # берём от максимального до минимального
print(*L)
# 6.2
A = set(map(int, input("Введите множество A:\n").split()))
B = set(map(int, input("Введите множество B:\n").split()))
C = A.union(B) # объединение множеств
print(reduce(lambda a, x: a + x, C)) # суммируем результат, можно сделать одной функцией, но подумал, что придерётся
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment