# Все задачи текущего блока решите с помощью генераторов списков!

# Задание-1:
# Дан список, заполненный произвольными целыми числами. 
# Получить новый список, элементы которого будут
# квадратами элементов исходного списка
# [1, 2, 4, 0] --> [1, 4, 16, 0]
1:
m = [1, 2, 4, 0]
n = [i ** 2 for i in m]
print(n)
2:
m = [1,2,3,4,5]
n = []
for i in m:
    n.append(i**2)
print(n)
3:
def f(x):
    return x**2

m = [1,2,3,4,5]

print(list(map(f, m)))


# Задание-2:
# Даны два списка фруктов.
# Получить список фруктов, присутствующих в обоих исходных списках.

a = set(["яблоко", "апельсин", "мандарин", "груша", "банан"])

b = set(["виноград", "дыня", "груша", "арбуз", "яблоко"])

c = a.intersection(b)

print(c)

# Задание-3:
# Дан список, заполненный произвольными числами.
# Получить список из элементов исходного, удовлетворяющих следующим условиям:
# + Элемент кратен 3
# + Элемент положительный
# + Элемент не кратен 4

import random

m = [i for i in range(50)]

m2 = []

m2 = [i for i in m if i % 3 == 0 and i % 2 == 0 and i % 4 != 0]

print(m2)