Dynamic16. Дан набор из 10 чисел. Создать две очереди: первая должна содержать все нечетные, а вторая — все четные числа из исходного набора (порядок чисел в каждой очереди должен совпадать с порядком чисел в исходном наборе). Вывести указатели на начало и конец первой, а затем второй очереди (одна из очередей может оказаться пустой; в этом случае вывести для нее две константы NIL).

Решение на Python 3:

import random

N = 10
q = [random.randrange(1,11) for i in range(0,N)]
q_odd = [i for i in q if i%2 == 1]
q_even = [i for i in q if i%2 == 0]
print("Queue: ", q)
print()
print("Queue (evens): ", q_even)
try:
print("id of the first item: ",id(q_even[0]))
except IndexError as err:
print("NIL: {0}".format(err))
try:
print("id of the last item: ",id(q_even[-1]))
except IndexError as err:
print("NIL: {0}".format(err))

print()
print("Queue (odds): ", q_odd)
try:
print("id of the first item: ",id(q_odd[0]))
except IndexError as err:
print("NIL: {0}".format(err))
try:
print("id of the last item: ",id(q_odd[-1]))
except IndexError as err:
print("NIL: {0}".format(err))