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

# Задание-1:
# Дан список, заполненный произвольными целыми числами. 
# Получить новый список, элементы которого будут
# квадратами элементов исходного списка
# [1, 2, 4, 0] --> [1, 4, 16, 0]

import random

list_g = [random.randint(-10, 10) for _ in range(10)]
print('list_g = ', list_g)
list_new=[]
for x in list_g:
    list_new.append(x*x)
print(list_new)

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

arr1=['яблоко','банан','киви','арбуз']
arr2=['апельсин','лимон','киви','арбуз']

def gen_union(arr1, arr2):
  for x in arr1+arr2:
    if x in arr1 and x in arr2:
      yield x
print(set(gen_union(arr1,arr2)))

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

import random

list_g = [random.randint(-1000, 1000) for _ in range(300)]
print('list_g = ', list_g)
list_new=[]
for x in list_g:
    if x % 3 == 0 and x > 0 and x % 4 != 0:
        list_new.append(x)
print(list_new)
