Basically I have a big list:
# where (n) is over a couple hundred thousand or is 1 million
def big_list(n):
return [ randrange(-n//3,n//3) for i in range(n) ]
And using a set
I must return a new list if and only if its negative value also exists.
Ex. if list = [-3,-2,-1,2,1,4]
it should return new_list = [2,1]
I must do this using set
, and I''m really lost.
If you create a
set
from a list created withbig_list()
, you can use it to create a desired result list by iterating through all the elements of the set and selecting all those whose values are > 0 and whose negative value is also in the set.You can use a list display expression, commonly call a "list comprehension", to create the resultant list with one long-ish line of code inside
[]
brackets, like thebig_list()
function does.Hope this helps.
Store all negative numbers in a set and then get the intersection with the initial list:
Demo: