如何从集合中删除值为None的变量?

时间:2017-05-01 00:16:54

标签: python

我需要创建一个有职位的集合。但是某些位置可以具有值None(当它们不属于游戏板时)。如何从我的设置中删除这些。或者我如何在手前确定我不需要在集合中添加它们? (添加的所有元素都是从我的代码中的不同函数获得的位置)。到目前为止我的代码(删除语句不起作用:Keyerror无。

collection = set()
collection.add((above,below,left,right,top_left,top_right,bottom_left,bottom_right))
if above == None:
    collection.remove(above)
    return collection

提前致谢!

2 个答案:

答案 0 :(得分:3)

collection = set()
collection.add('a')
collection.add(None)
collection
Out[501]: {None, 'a'}
#you can use the set minus operator to remove None
collection - set([None])
Out[502]: {'a'}

答案 1 :(得分:3)

set.add向该集添加单个元素。在您的情况下,您添加了一个tuple,其中包含所有值。如果tuple中的某个项目是None,则无关紧要。您应该使用set.update代替。然后有几种方法可以删除它。

collection = set()
collection.update((above,below,left,right,top_left,top_right,bottom_left,bottom_right))
collection.discard(None)