我正在将一些代码从Python转换为C++。我碰到以下内容:这段代码是什么意思?
set(x for listX in listY for x in listX)
我对C++非常熟悉,并且了解了Python中的一些基本构造。在上面的代码中,我知道正在创建一个集合,但我不理解括号内的代码。任何帮助?
我正在将一些代码从Python转换为C++。我碰到以下内容:这段代码是什么意思?
set(x for listX in listY for x in listX)
我对C++非常熟悉,并且了解了Python中的一些基本构造。在上面的代码中,我知道正在创建一个集合,但我不理解括号内的代码。任何帮助?
listY可能是类似下面的结构,从而扩展代码:
listY = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
result = set()
for listX in listY:
for x in listX:
result.add(x)
通知:套不允许重复条目
它是一个generator comprehension,类似于list comprehension。请参阅this previous question了解一些信息。
感谢您的链接,我发现了一个类似的例子[发电机理解](http://www.python.org/dev/peps/pep-0289/) – Mika
太棒了!谢谢! – Mika
生成器表达式已传递给'set',所以一切都立即求值 - 在'set'实现中,当然。 –
事实上,你是完全正确的,我很抱歉,我的错误。 – andrean