Rispondendo NON ti faccio un favore, non hai neanche abbozzato un tentativo di soluzione da proporre, una soluzione "fornita" non è istruttiva come una "trovata"
Quanto segue utilizza una
comprehensions, due liste prodotte a caso, una per il risultato e la funzione che chiedi :
>>> len_a = random.randint(10, 20)
>>> len_a
13
>>> a = []
>>> for i in range(len_a):
a.append(random.randint(1, 100))
>>> len_b = random.randint(10, 20)
>>> b = []
>>> for i in range(len_b):
b.append(random.randint(1, 100))
>>> c = []
>>> a
[90, 67, 46, 51, 1, 46, 91, 23, 90, 60, 3, 51, 86]
>>> b
[70, 7, 73, 22, 41, 66, 54, 15, 96, 26, 93, 85]
>>> c
[]
>>> def sposta(a, b, c, d):
for k in range(len(a)):
if len([x for x in b if x > a[k]]) > d:
c.append(a[k])
a[k] = -a[k]
>>> sposta(a, b, c, 3)
>>> a
[90, -67, -46, -51, -1, -46, 91, -23, 90, -60, -3, -51, 86]
>>> b
[70, 7, 73, 22, 41, 66, 54, 15, 96, 26, 93, 85]
>>> c
[67, 46, 51, 1, 46, 23, 60, 3, 51]
>>>
Non credo che le comprehensins siano comprese nel Tuo attuale livello di studio, soluzione alternativa potrebbe essere l'utilizzo di due cicli for annidati con un contatore, Te la lascio per esercizio.
Ciao