问题描述
基本上我有一个很大的清单:
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) ]
并且使用 set
我必须返回一个新列表,当且仅当它的负值也存在时.
And using a set
I must return a new list if and only if its negative value also exists.
例如.if list = [-3,-2,-1,2,1,4]
它应该返回 new_list = [2,1]
Ex. if list = [-3,-2,-1,2,1,4]
it should return new_list = [2,1]
我必须使用 set
来做到这一点,我真的很迷茫.
I must do this using set
, and I''m really lost.
推荐答案
如果您从使用 big_list()
创建的列表创建一个 set
,您可以使用它来通过迭代集合的所有元素并选择所有值 > 0 且负值也在集合中的元素来创建期望结果列表.
If you create a set
from a list created with big_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.
您可以使用列表显示表达式,通常称为列表推导式",用 []
括号内的一行长代码创建结果列表,就像 big_list()
函数所做的那样.
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 the big_list()
function does.
希望这会有所帮助.
这篇关于python采用列表并仅在使用set也存在负值时返回的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!