1个"pythonic"代码,它返回一个集合而不是列表

Cra*_*aig 4 python set python-3.x

我想做以下代码,除了整齐的1-liner:

terms_set = set([])
for term in terms: 
    if index.has_key(term): 
        terms_set.add(index[term])
Run Code Online (Sandbox Code Playgroud)

有可能吗?必须返回一套.

lvc*_*lvc 7

您可以使用集合理解:

terms_set = {index[term] for term in terms if term in index}
Run Code Online (Sandbox Code Playgroud)

请注意,这key in dict是首选dict.has_key,在Python 2中已弃用,在Python 3中不可用.