Сохранение данных из random и сравнение их с данными из этого же random в следующем цикле

Я совсем новичок в изучении pyton. Решаю для себя не большие задачки, некоторые из них придумываю сам для себя. Что хотел сделать: в цикле, random выдает число "х" если оно совпадает с числом из списка "а", то ставится в "n" и остается там до следующего цикла, если в следующем цикле "х" совпадает с числом в списке "b", то ставится в "m" и происходит их сравнение, если "х" не совпадает с числами ни в "а" ни в "b", то оно отбрасывается, а если совпадает, но уже есть "m" или "n" то ставится вместо "m" или "n". При совпадении "m" и "n" цикл прекращается. Основное тут условие, что random должен быть один, а его значения должны переходить в следующие циклы. Я пробовал это сделать через global и copy, но ничего не получилось, думал об индексе, но понял, что это не то. Может это совсем просто (сохранение значений из random в последующих циклах) и я совсем глупый, или это не возможно, как деление на ноль? Бьюсь уже неделю, сегодня даже, что то снилось, но все никак. Прошу у старших товарищей помощи. Код не правильный, он просто для представления того, что я хочу.

import copy
import random
a= [i for i in range(1,20,3)]
b= [i for i in range(1,20,4)]
while True:
      x=random.randint(1,20)
      print('x',x)
      if x in a:
            n = copy.copy(x)
            print('n',n )
      if x in b:
            m = copy.copy(x)
            print('m', m)
      if n > m:
          print('n>m', n, '>', m)
      if n < m:
          print('n<m', n, '<', m)
      if n==m:
          print('b=m', n, '=', m)
          break

Ответы (1 шт):

Автор решения: MBo

Нужно бы привести точное условие задачи. Сейчас вы ищете, не встретится ли в двух соседних итерациях одно и то же случайное число 1 или 13 (только такие совпадения возможны при заданных списках). Смысла в этом особого нет.

Если по минимуму править вашу программу, то можно сделать так. copy вам не нужны.

import random
a= [i for i in range(1,20,3)]
b= [i for i in range(1,20,4)]
i = 0
n = -2
m = -1
while True:
    x=random.randint(1,20)
    print('x',x)
    if i:
        if x in a:
            n = x
            print('n',n )
    else:
        if x in b:
            m = x
            print('m', m)
    if n > m:
        print('n>m', n, '>', m)
    if n < m:
        print('n<m', n, '<', m)
    if n==m:
        print('b=m', n, '=', m)
        break
    i = 1 - i
→ Ссылка