2012-09-01 148 views
1

我正在将一些代码从Python转换为C++。我碰到以下内容:这段代码是什么意思?

set(x for listX in listY for x in listX) 

我对C++非常熟悉,并且了解了Python中的一些基本构造。在上面的代码中,我知道正在创建一个集合,但我不理解括号内的代码。任何帮助?

回答

6

listY可能是类似下面的结构,从而扩展代码:

listY = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 
result = set() 
for listX in listY: 
    for x in listX: 
     result.add(x) 

通知:套不允许重复条目

+0

太棒了!谢谢! – Mika

+1

生成器表达式已传递给'set',所以一切都立即求值 - 在'set'实现中,当然。 –

+0

事实上,你是完全正确的,我很抱歉,我的错误。 – andrean